QueryDSL - 将子查询添加到FROM语句中

时间:2013-02-22 08:45:19

标签: spring-data querydsl

我需要实现sql查询,如:

SELECT * FROM (SELECT a FROM b WHERE a.z = 1) WHERE rownum <=1;

如何用QueryDSL编写这样的语句(我没有使用JPA和JDO - 只有干净的sql)?

1 个答案:

答案 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);