簡體   English   中英

Jpa/Hibernate:避免在每個關系都是唯一的實體中的所有連接表上連接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM