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