[英]Jpa/Hibernate: avoid join on all join-table in an Entity that is UNIQUE per each relationship
簡單的例子。
表資源。 表 Line_A。 表行_B。
連接表 Resource_Line_A 連接表 Resource_Line_B
Line_A 的資源無法附加到 Line_B,反之亦然。
如果我想在 2021 年將所有資源附加到 Line_A,在本機 sql 中我可以寫
Select * from Resource r join Resource_Line_A rla on r.id = rla.resource_id join Line_A la on rla.line_a_id = la.id where la.year = 2021
在 Java 中,使用存儲庫,我有lineARepository.findByYear(2021) ,但是 Hibernate 向我展示了這個查詢
Select * from Resource r join Resource_Line_A rla on r.id = rla.resource_id join Line_A la on rla.line_a_id = la.id join Resource_Line_B rlb on r.id = rlb.resource_id join Line_B lb on rlb.line_b = lb.id where la.year = 2021
如何避免 Line_B 表上的無用連接? 所有關系都是 fetchtype.Lazy
我猜您正在為lineB
使用@OneToOne(mappedBy = "..", fetch = LAZY)
? 如果是這樣,您必須知道 Hibernate 5.3 有一個在 5.4 中修復的錯誤,導致此類關聯被急切地獲取。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.