QueryDSL - 将子查询添加到 FROM 语句中 [英] QueryDSL - add subquery into FROM statement

查看:83
本文介绍了QueryDSL - 将子查询添加到 FROM 语句中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要实现 sql 查询,如:

I need to implement sql query like:

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

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

How can I write such statement with QueryDSL (I am not using JPA and JDO - only clean sql)?

推荐答案

Querydsl SQL模拟所有支持的数据库分页,直接写

Querydsl SQL emulates paging of all the supports databases, so you can write directly

query.from(a)
    .where(a.z.eq(1))
    .limit(1)
    .list(a);

如果你需要通过子查询来写这个,那么就像这样

If you need to write this via a subquery then like this

query.from(
  new SQLSubQuery().from(a).where(a.z.eq(1)).list(a).as(a))
 .where(rownum.loe(1))
 .list(a);

这篇关于QueryDSL - 将子查询添加到 FROM 语句中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆