3

我需要实现 sql 查询,例如:

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

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

4

1 回答 1

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);
于 2013-02-22T10:36:17.943 回答