问题是我需要从数据库中选择一个对象,里面有一个连接列,我需要那个外部对象的 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 值。
关于java - Hibernate select id of join column without join,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52476273/