簡體   English   中英

Hibernate 通過注解內聯關聯

[英]Hibernate Inner Join on Association Through Annotation

有什么方法可以強制 hibernate 使用內部連接進行使用注釋的關聯? 我正在通過 Spring 啟動 JPA 使用 Hibernate 5

@Data
class Entity {
 private Integer id;

 @OneToMany
 @JoinColumn(name="entityId", referencedColumnName="id")
 private Set<ComplexObject> complexObjects;


我希望complexObjects的聯接是內部聯接而不是左聯接。

默認情況下,您根本不應該看到連接,因為這是一個@OneToMany關聯,默認情況下是惰性的。 必須有一個明確使用LEFT JOIN FETCH或僅LEFT JOIN的查詢。 發生左連接的其他可能原因是使用實體圖或使用 JPA CriteriaBuilder API 中的fetch方法。

一般來說,這里的左連接是正確的,因為它需要保留預期的基數。 如果沒有子實體,使用內部連接獲取將消除主實體,這可能不是人們在應用實體圖時所期望的。

我不明白您為什么需要INNER JOIN ,但根據連接的創建方式,您可能需要調整查詢以獲得所需的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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