繁体   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