2015-07-03 72 views
1

我想創建一個子查詢,將採取DetachedCriteria從連接表中選擇,其中有一個實體的條目;基本上我想查看一個實體是否有通過連接表的任何關聯。休眠子查詢應用DetachedCriteria ManyToMany聯接表

根據傳遞的布爾值,我將在條件中添加一個existsnotExists子查詢。

基本上,我想借此子查詢在此SQL:

select * from A as leftEntity where not exists (select * from A_B where A = leftEntity.id);` 

,並創建一個分離的標準。我無法弄清楚正確的實體傳遞來創建分離標準 - 我試圖在連接表上做一些事情,而不是實體A或B。我該怎麼做?

回答

1

我放棄了試圖使用DetachedCriteria並且只對條件使用了sqlRestriction;

criteria.add(Restrictions.sqlRestriction("exists (select a from a_b where a = {alias}.id)"));