Java 在jOOQ的SQL查询中结合普通SQL和DSL

Java 在jOOQ的SQL查询中结合普通SQL和DSL,java,sql,jooq,Java,Sql,Jooq,我有一个复杂的普通SQL查询(带有子选择、多个连接、数据库特定函数),但我想使用jOOQ的DSL生成例如ORDERBY子句 我希望达到的目标是: DSL .using(datasource) .select("select column from table") .orderBy(DSL.fieldByName("column")) 哪些jOOQ可以转变为: select * (select column from table) q order by q.column;

我有一个复杂的普通SQL查询(带有子选择、多个连接、数据库特定函数),但我想使用jOOQ的DSL生成例如ORDERBY子句

我希望达到的目标是:

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方言重命名)派生表


请注意,我使用的是,而不是,因为后者生成一个区分大小写的
引用。然后,您的普通SQL查询还必须生成区分大小写的
引用。

非常感谢您的帮助!