如何解决休眠内部通过注释进行关联
是否有任何方法可以强制休眠方式使用内部联接进行带注释的关联?我正在通过Spring Boot 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
,但是根据连接的创建方式,您可能必须修改查询才能获得所需的结果。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。