2015-09-01 53 views
0

我將BusinessParty POJO對象映射到表BP表, 請求將POJO對象映射到REQUESTS表。想要獲取記錄但指望使用HQL重複值的列的差別

一個BP在外鍵的REQUESTS表中有多個請求。

我想通過向DAO提供所需BP的數量來獲取請求,並獲取來自REQUEST表的所有請求(例如10個)BP請求。

我在甲骨文SQL

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

但在這個內部查詢最初試圖搜索到200行,並發現有95個BP和外部查詢返回我REQUESTS其中95個BP的217條記錄。

再次我必須將結果查詢轉換爲HQL。

不知道如何獲取特定計數的BP的所有請求。

回答

0

我不確定,如果我明白了,你想做什麼,但我認爲問題在於,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); 
+0

我想將這個sql查詢轉換成HQL查詢。我怎樣才能做到這一點?有什麼建議麼? –

+0

對不起,我到目前爲止還沒有真正與HQL合作過。 –

+0

我不知道在內部查詢中使用哪個關鍵字可以代替HQL中的ROWNUM。 –