2016-12-09 9 views
0

Я изучаю использование jOOQ с уровнем абстракции для конфигурируемых бэкэндов JDBC. Один и необходимый параметр - это очень специфическая база данных, которая поддерживает JDBC, но имеет не общий диалект SQL. Мне нужно работать с этой базой данных, но я хочу продолжать использовать общие DSL и API. Я заинтересован в использовании вызова DSLContext.executeUpdate, например.
Я понимаю, как решить половину моих проблем с внедрением DefaultExecuteListener. Но есть еще одна половина, там я должен перевести один оператор, сгенерированный jOOQ, в другое утверждение, принятое БД. Я думаю, что эту задачу нужно будет проще реализовать, работая с DSL, чем модификация SQL. Возможно ли получить доступ к конструкции DSL внутри ранних шагов ExecutionListener (например, «начать»), разложить его и вставить новую конструкцию DSL на последующие этапы?Перестроить запрос перед выполнением

ответ

0

Что вы ищете является VisitListener SPI, который также документированы в руководстве:

http://www.jooq.org/doc/latest/manual/sql-building/queryparts/custom-sql-transformation/

+0

Большое спасибо за Ваш ответ. VisitListener кажется правильной точкой инъекции. Я обещаю, что я позабочусь о выполнении этой реализации. :) По крайней мере, чтобы не задавать такие вопросы, как «почему jOOQ такой медленный?» ;) –

+0

@ Stinger.911: Ну, вы действительно хотите делать продвинутые вещи, поэтому есть цена, которую нужно заплатить. А также: Да. Будьте очень осторожны, чтобы ваш 'VisitListener' ударил только тогда, когда это необходимо/применимо. –

Смежные вопросы