繁体   English   中英

Hibernate在没有连接的情况下选择连接列的id

[英]Hibernate select id of join column without join

问题是我需要从数据库中选择一个内部有一个连接列的对象,我需要该外来对象的Id。 但是hibernate加入了这两个表,或者如果处于惰性模式,它会再次查询我的数据库。 如何在没有其他连接或查询的情况下访问该Id,而不是主选择查询。

请注意,我使用的是Hibernate版本+5,我希望通过JPA CriteriaBuilder

先感谢您。

在这种情况下,您可以将外键映射到实体两次,一个用于实际ORM,另一个用于获取FK而不实际触发新查询。

public class Answer {
   @JoinColumn(name = "question_id")
   @ManyToOne(targetEntity = Question.class, fetch = FetchType.LAZY)
   private Question question;

   @Column(name = "question_id", insertable = false, updatable = false)
   private Long questionId;
}

这里, question_id出现在answer表中。

这样,外键在第一个查询的结果中(在questionId字段中)已经可用,并且不会因获取FK值而触发新查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM