我有一个查询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());