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