Leider ist die Erweiterung von jOOQ zur vollständigen Unterstützung eines neuen SQL-Dialekts nicht sehr einfach. Die API von jOOQ ist im Laufe der Zeit umfangreich gewachsen und unterstützt eine große Auswahl an Standard- und herstellerspezifischen SQL-Syntaxvarianten. Während der Apache Hive-Dialekt MySQL ähnlich erscheinen mag, gibt es wahrscheinlich viele subtile Unterschiede, die in den Interna von jOOQ implementiert werden müssten. Die unterschiedliche Implementierung der LIMIT .. OFFSET-Klausel ist nur ein Problem. Allerdings ist es im Allgemeinen keine gute Idee, jOOQ mit einem „unbekannten“ oder „nicht unterstützten“ Dialekt zu verwenden.
Lösung:Kurzfristig
Kurzfristig müssen Sie wahrscheinlich das gerenderte SQL von jOOQ patchen. Die beste Technik dafür ist die Verwendung eines ExecuteListeners, wie hier dokumentiert:
- http://www.jooq.org /doc/latest/manual/sql-execution/execute-listeners/
- http://www.jooq.org/javadoc/ Latest/org/jooq/ExecuteListener.html
Nach Erhalt eines "renderEnd()"-Ereignisses können Sie auf das gerenderte SQL zugreifen und es mit regulären Ausdrücken oder einer anderen von Ihnen bevorzugten Technik ändern.
Lösung:Langfristig
Langfristig kann es eine bessere Lösung geben, wenn / wenn #2337 implementiert ist (aber wir werden das wahrscheinlich nicht implementieren)