想要获取记录,但依靠使用HQL计算具有重复值的列的区别

时间:2015-09-01 14:30:12

标签: java oracle hibernate hql

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

一个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个请求记录,其中包含95个BP。

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

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

1 个答案:

答案 0 :(得分:0)

我不确定,如果我明白了,你想做什么,但我认为问题是,甲骨文限制了rownum而不是明确。如果要获得200个唯一的BP_ID,则必须进行另一个子查询:

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