Niestety rozszerzenie jOOQ o pełną obsługę nowego dialektu SQL nie jest bardzo proste. API jOOQ rozrosło się z biegiem czasu, obsługując wielki zestaw standardowych i specyficznych dla dostawcy wariantów składni SQL. Chociaż dialekt Apache Hive może wydawać się podobny do MySQL, prawdopodobnie istnieje wiele subtelnych różnic, które należałoby zaimplementować w wewnętrznych elementach jOOQ. Odmienna implementacja klauzuli LIMIT .. OFFSET to tylko jeden problem. To powiedziawszy, generalnie nie jest dobrym pomysłem używanie jOOQ z "nieznanym" lub "nieobsługiwanym" dialektem.
Rozwiązanie:na krótką metę
Na krótką metę prawdopodobnie będziesz musiał załatać wyrenderowany kod SQL jOOQ. Najlepszą techniką do tego jest użycie ExecuteListener, jak udokumentowano tutaj:
- http://www.jooq.org /doc/latest/manual/sql-execution/execute-listeners/
- http://www.jooq.org/javadoc/ najnowszy/org/jooq/ExecuteListener.html
Po otrzymaniu zdarzenia „renderEnd()” będziesz mógł uzyskać dostęp do renderowanego kodu SQL i modyfikować go za pomocą wyrażeń regularnych lub dowolnej preferowanej techniki.
Rozwiązanie:na dłuższą metę
Na dłuższą metę może być lepszym rozwiązaniem, jeśli / kiedy #2337 jest zaimplementowany (ale prawdopodobnie tego nie zaimplementujemy)