我有以下休眠實體不同的內部聯接HQL
public class Container {
...
@OneToMany
private List<ACLEntry> aclEntries;
}
爲了確保我的容器實例我用下面的實體:
public class ACLEntry {
...
private Long sid;
private boolean principal;
private Integer mask;
}
HQL的查詢將被自動創建,以便進行搜索容器實例, 將創建以下查詢:
select container from Container container
inner join container.aclEntries as aclEntry
with bitwise_and (aclEntry.mask, 1) = 1 and
(aclEntry.sid = :userId or aclEntry.sid = :roleId)
問題在於aclentry連接可能返回2個結果,這會導致重複的容器結果。
有沒有人有一個想法如何解決這個問題?
我們使用內部查詢引擎來構建hql查詢,所以我不能添加不同的因爲它會影響所有查詢。我認爲獨特應該只適用於加入,或者我錯了嗎? –
+1。這是正確和簡單的解決方案。如果查詢引擎無法處理它,則改進查詢引擎。 –