【问题标题】:Want to fetch records but counting on distinction of column with duplicate values using HQL想要获取记录但依靠使用 HQL 来区分具有重复值的列
【发布时间】:2015-09-01 14:30:11
【问题描述】:

我有 BusinessParty POJO 对象映射到表 BP 表, 请求映射到 REQUESTS 表的 POJO 对象。

一个BP通过外键在REQUESTS表中有多个请求。

我只想通过提供 DAO 所需的 BP 计数来获取请求,并从 REQUEST 表中获取该计数的所有请求(例如 10 个)BP 请求。

我最初在 Oracle SQL 中尝试过

select * from REQUESTS where BP_ID in (select distinct BP_ID from REQUESTS where ROWNUM<=200);

但是在这个内部查询中搜索 200 行,它找到了 95 个 BP,而外部查询返回了 217 条 REQUESTS 记录,其中 95 个 BP。

我必须再次将结果查询转换为 HQL。

不知道如何获取特定数量的 BP 的所有请求。

【问题讨论】:

    标签: java oracle hibernate hql


    【解决方案1】:

    如果我理解的话,我不确定你想要做什么,但我认为问题在于,Oracle 限制了 rownum,而不是区分。如果要获取 200 个唯一的 BP_ID,则必须进行另一个子查询:

    select * 
    from REQUESTS 
    where BP_ID in (select BP_ID from (Select distinct BP_ID from REQUESTS) where ROWNUM<=200);
    

    【讨论】:

    • 我想把这个 sql 查询转换成 HQL 查询。我怎样才能做到这一点?有什么建议吗?
    • 我不知道在内部查询中使用时哪个关键字将代替 HQL 中的 ROWNUM。
    猜你喜欢
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多