残念ながら、jOOQを拡張して新しいSQLダイアレクトを完全にサポートすることは、それほど簡単ではありません。 jOOQのAPIは時間の経過とともに大幅に成長し、標準およびベンダー固有のSQL構文バリアントの優れたセットをサポートしています。 Apache Hive方言はMySQLに似ているように見えるかもしれませんが、jOOQの内部に実装する必要がある微妙な違いがおそらくたくさんあります。 LIMIT..OFFSET句の異なる実装は1つの問題にすぎません。とはいえ、一般的に、「不明」または「サポートされていない」方言でjOOQを使用することはお勧めできません。
解決策:短期的には
短期的には、おそらくjOOQのレンダリングされたSQLにパッチを適用する必要があります。このための最良の手法は、ここに記載されているようにExecuteListenerを使用することです:
- http://www.jooq.org / doc / latest / manual / sql-execution / execute-listeners /
- http://www.jooq.org/javadoc/ latest / org / jooq / ExecuteListener.html
「renderEnd()」イベントを受信すると、レンダリングされたSQLにアクセスし、正規表現または任意の手法を使用して変更できます。
解決策:長期的には
長期的には、#2337 の場合、より良い解決策があるかもしれません。 実装されています(ただし、おそらく実装しません)