1
我有兩個實體A,B關係正在進行中,可選,一對多從A到B(多邊),我想選擇每個B和它的(或者如果沒有與該BI有關的A需要空值),那麼使用正確的外連接可以輕鬆完成,但是hibernate不支持在標準API中進行右外連接的問題,所以我想爲此解決此問題。JPA標準(和JPQL)右外連接
我有兩個實體A,B關係正在進行中,可選,一對多從A到B(多邊),我想選擇每個B和它的(或者如果沒有與該BI有關的A需要空值),那麼使用正確的外連接可以輕鬆完成,但是hibernate不支持在標準API中進行右外連接的問題,所以我想爲此解決此問題。JPA標準(和JPQL)右外連接
根據你的場景你想使用左連接。像
select b from B b left join A a
where a.fkey is null
,或者如果你想要的任何標準之前加入,然後使用
select b from B b left join A a with a.type = 1
where a.fkey is null
這與被送達「和」用「的」子句將服務器類似用途
例如:
select t from Template t left join t.profiles p with p.type = 1
where p.id is null
這將得到所有沒有配置文件類型1的模板
如果關聯沒有按照您導航的方向進行建模,則無法使用「Criteria」API執行連接。您可以嘗試使用HQL並編寫與您想要的右外連接等效的ANSI-89連接(希望RDBM的優化器將有效地執行連接)。 –
我決定不使用Criteria API,只使用JPQL「select b,a from a a right join a.lotsOfBs b」 –