У меня сложный простой SQL-запрос (с подзапросами, несколькими объединениями, функциями, специфичными для базы данных), но я хотел бы использовать jOOQ DSL для генерации, например, порядка order by.
Я бы хотел достичь:
DSL
.using(datasource)
.select("select column from table")
.orderBy(DSL.fieldByName("column"))
который jOOQ может быть преобразован в:
select * (select column from table) q order by q.column;
Это можно сделать?
Вы близки. Возможно следующее:
DSL.using(datasource, dialect)
.select()
.from("(select column from table) t")
.orderBy(DSL.field("t.column"));
Вы должны обернуть (и в зависимости от диалекта SQL, также переименовать) свою производную таблицу явно сами.
Обратите внимание, что я использую DSL.field()
, а не DSL.fieldByName()
, так как последний создает регистр column
учетом регистра. Тогда ваш простой SQL-запрос также должен будет создать справочную column
учетом регистра.