我需要实现sql查询,如:
SELECT * FROM (SELECT a FROM b WHERE a.z = 1) WHERE rownum <=1;
如何用QueryDSL编写这样的语句(我没有使用JPA和JDO - 只有干净的sql)?
答案 0 :(得分:3)
Querydsl SQL模拟所有支持数据库的分页,因此您可以直接编写
query.from(a)
.where(a.z.eq(1))
.limit(1)
.list(a);
如果你需要通过子查询来写这个,那就像这样
query.from(
new SQLSubQuery().from(a).where(a.z.eq(1)).list(a).as(a))
.where(rownum.loe(1))
.list(a);