2016-12-09 3 views
0

Ich untersuche die Verwendung von jOOQ mit der Abstraktionsschicht zu den konfigurierbaren JDBC-Backends. Eine und die erforderliche Option ist die sehr spezifische Datenbank, die JDBC unterstützt, aber sie hat den nicht üblichen SQL-Dialekt. Ich muss mit dieser Datenbank arbeiten, aber ich möchte weiterhin die übliche DSL und API verwenden. Ich bin interessiert an der Verwendung der DSLContext.executeUpdate Aufruf, zum Beispiel.
Ich verstehe, wie die Hälfte meiner Probleme mit der Implementierung DefaultExecuteListener zu lösen. Aber da ist noch eine andere Hälfte, dort muss ich eine von jOOQ generierte Aussage in eine andere, von der DB akzeptierte Aussage übersetzen. Ich denke, diese Aufgabe sollte durch den Einsatz von DSL einfacher zu implementieren sein als SQL. Ist es möglich, innerhalb der ExecutionListener frühe Schritte (zB 'Start') auf die DSL-Konstruktion zuzugreifen, sie zu zerlegen und die neue DSL-Konstruktion in die konsequenten Schritte zu injizieren?Abfrage vor der Ausführung neu erstellen

Antwort

0

Was Sie suchen ist der VisitListener SPI, die auch hier im Handbuch dokumentiert ist:

http://www.jooq.org/doc/latest/manual/sql-building/queryparts/custom-sql-transformation/

+0

Vielen Dank für Ihre Antwort. VisitListener scheint der richtige Injektionspunkt zu sein. Ich verspreche, dass ich mich um die Ausführung der Implementierung kümmern werde. :) Zumindest um zu vermeiden, Fragen wie "Warum der JOOQ so langsam?" ;) –

+0

@ Stinger.911: Nun, du willst fortgeschrittene Dinge machen, also gibt es einen Preis zu zahlen. Und auch: Ja. Seien Sie sehr vorsichtig, dass Ihr 'VisitListener' nur dann eingreift, wenn es benötigt wird. –

Verwandte Themen