Как обернуть скобки вокруг значений параметров при использовании jOOq? - PullRequest
0 голосов
/ 12 ноября 2018

Я использую jOOq для написания запросов, за исключением того, что я использую специфический для поставщика тип SQL ... для конкретного гибкого поиска.Основное различие между SQL и flexiSearch заключается в том, что значения параметров заключены в фигурную скобку.например,

SELECT * FROM {Product} WHERE {code} LIKE ‘%al%’

Так что я пытаюсь сделать так, чтобы jOOq автоматически перехватывал процедуру построения запроса для включения скобок.

Просматривая документы, мне кажется, что я долженреализовать какой-то слушатель выполнения?Но я не уверен, что делать после этого.Спасибо

1 Ответ

0 голосов
/ 13 ноября 2018

Вы действительно можете реализовать ExecuteListener, который заменит

  • каждое нечетное " на { и каждое четное " на } с использованием любого диалекта (будьте осторожны с синтаксической неясностью)
  • каждый нечетный ` на { и каждый четный ` на } с использованием диалекта MySQL
  • каждый [ на { и каждый ] на } с использованием диалекта SQL Server

Но из того, что я могу сказать, это будет не единственное, что вы будете исправлять в сгенерированном SQL, так что вы можете также разветвить jOOQ Open Source Edition и патчить соответствующий код самостоятельно.

Осторожно, jOOQ на самом деле не поддерживает этот конкретный диалект. Это будет не единственное, с чем вы столкнетесь. Например, вы можете попытаться сэмплировать подзапросы соответствия в ExecuteListener и обернуть их в {{ ... }}, но этого также будет гораздо проще достичь путем непосредственного исправления jOOQ.

...