Helaas is het niet erg eenvoudig om jOOQ uit te breiden om een nieuw SQL-dialect grondig te ondersteunen. De API van jOOQ is in de loop van de tijd enorm gegroeid en ondersteunt een groot aantal standaard- en leverancierspecifieke SQL-syntaxisvarianten. Hoewel het Apache Hive-dialect lijkt op MySQL, zijn er waarschijnlijk veel subtiele verschillen die in de interne onderdelen van jOOQ moeten worden geïmplementeerd. De verschillende implementatie van de LIMIT .. OFFSET-clausule is slechts één probleem. Dat gezegd hebbende, is het over het algemeen geen goed idee om jOOQ te gebruiken met een "onbekend" of "niet-ondersteund" dialect.
Oplossing:op korte termijn
Op korte termijn zul je waarschijnlijk de door jOOQ gerenderde SQL moeten patchen. De beste techniek hiervoor is om een ExecuteListener te gebruiken zoals hier beschreven:
- http://www.jooq.org /doc/latest/manual/sql-execution/execute-listeners/
- http://www.jooq.org/javadoc/ nieuwste/org/jooq/ExecuteListener.html
Na ontvangst van een "renderEnd()"-gebeurtenis, hebt u toegang tot de gerenderde SQL en kunt u deze wijzigen met behulp van reguliere expressies of welke techniek u ook verkiest.
Oplossing:op de lange termijn
Op de lange termijn kan er een betere oplossing zijn als / wanneer #2337 is geïmplementeerd (maar dat zullen we waarschijnlijk niet implementeren)