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