Bohužel rozšíření jOOQ tak, aby důkladně podporovalo nový dialekt SQL, není příliš jednoduché. Rozhraní API jOOQ se postupem času rozrostlo a podporuje velkou sadu standardních variant syntaxe SQL a variant syntaxe SQL specifických pro dodavatele. Zatímco dialekt Apache Hive se může zdát podobný MySQL, pravděpodobně existuje spousta jemných rozdílů, které by bylo nutné implementovat do vnitřních částí jOOQ. Rozdílná implementace klauzule LIMIT .. OFFSET je jen jedním problémem. To znamená, že obecně není dobrý nápad používat jOOQ s „neznámým“ nebo „nepodporovaným“ dialektem.
Řešení:Krátkodobě
V krátkodobém horizontu budete pravděpodobně muset opravit vykreslené SQL jOOQ. Nejlepší technikou je použít ExecuteListener, jak je zdokumentováno zde:
- http://www.jooq.org /doc/latest/manual/sql-execution/execute-listeners/
- http://www.jooq.org/javadoc/ nejnovější/org/jooq/ExecuteListener.html
Po přijetí události "renderEnd()" budete moci přistupovat k vykreslenému SQL a upravovat jej pomocí regulárních výrazů nebo jakékoli techniky, kterou preferujete.
Řešení:Z dlouhodobého hlediska
Z dlouhodobého hlediska může existovat lepší řešení, pokud / když #2337 je implementováno (ale to pravděpodobně implementovat nebudeme)