如何在JPA query DSL中使用' from '子查询?



我有一个查询sql:

select distinct a.* from (select * from product_sku) a, (select @rowno:= 0) t;

现在,我想执行sql in查询dsl:

jpaQuery.selectDistinct(qProductSku).from(query, jpaQuery.select(Expressions.numberTemplate(Integer.class, "@rowno:=0")));

我已经用query命名了a。其类型为JPAQuery<ProductSkuEntity>jpaQuery的类型为JPAQueryFactory

但这是不正确的,因为from方法只接受EntityPath类型。

如何正确转换为查询dsl ?

(不要问我为什么这个SQL这么奇怪,它只是完整表达式的一部分)

SQLQuery sqlQuery = new SQLQuery(connection, PostgresTemplates.builder().quote().newLineToSingleSpace()
.printSchema().build());
ListSubQuery<Tuple> listSubQuery = new SQLSubQuery().from(QUsersPasswords.usersPasswords).orderBy(QUsersPasswords.usersPasswords.usuNummat.desc()).list(QUsersPasswords.usersPasswords.all());
QUsersPasswords qSubquery = new QUsersPasswords("subquery");
sqlQuery.from(listSubQuery.as("subquery")).limit(10);
sqlQuery.list(qSubquery.all());

相关内容

  • 没有找到相关文章

最新更新