Desværre er det ikke særlig ligetil at udvide jOOQ til grundigt at understøtte en ny SQL-dialekt. jOOQ's API er vokset omfattende over tid og understøtter et stort sæt standard- og leverandørspecifikke SQL-syntaksvarianter. Selvom Apache Hive-dialekten kan se ud som MySQL, er der sandsynligvis masser af subtile forskelle, der skal implementeres i jOOQ's interne funktioner. Den forskellige implementering af LIMIT .. OFFSET-klausulen er bare et problem. Når det er sagt, er det generelt ikke en god idé at bruge jOOQ med en "ukendt" eller "ikke-understøttet" dialekt.
Løsning:På kort sigt
På kort sigt bliver du sandsynligvis nødt til at patche jOOQ's renderede SQL. Den bedste teknik til dette er at bruge en ExecuteListener som dokumenteret her:
- http://www.jooq.org /doc/latest/manual/sql-execution/execute-listeners/
- http://www.jooq.org/javadoc/ nyeste/org/jooq/ExecuteListener.html
Når du modtager en "renderEnd()"-hændelse, vil du være i stand til at få adgang til den renderede SQL og ændre den ved hjælp af regulære udtryk eller hvilken teknik du måtte foretrække.
Løsning:I det lange løb
I det lange løb kan der være en bedre løsning, hvis / når #2337 er implementeret (men det implementerer vi nok ikke)