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 に答える