Hibernate/JPA - 如何在不触发延迟加载的情况下获取@ManyToOne 字段的 id

标签 hibernate jpa

例如,有一个实体“User”,@ManyToOne(fetch=Lazy) 字段为“Team”。我使用 entityManager.find(User.class, userId) 获取用户。此时,如果我调用 user.getTeam(),查询将发送到数据库以获取团队对象。有没有办法无需额外查询即可获取团队 ID?

最佳答案

出于这些目的,我对列进行了两次映射。一次与 insert="true"update="true" 多对一。

然后我附加一个 TeamId 属性并将其映射为 int insert="false"update="false"。我使用 formula 而不是 column 映射。

TeamId 在第一次选择后可用。

关于Hibernate/JPA - 如何在不触发延迟加载的情况下获取@ManyToOne 字段的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13342740/

相关文章:

java - 在 Spring boot 和 JPA 中更新 n-m 关系的正确方法是什么?

java - Spring数据复杂查询创建

java - 用于反向一对一解决方法的 Hibernate 延迟加载 - 这是如何工作的?

java - Hql如何更新有限制的表?

java - 在 JPA/Hibernate 中正确使用 flush()

java - 如何在Spring Boot中使用JPA的entityManager.getReference?

jpa - EclipseLink 审计/历史/跟踪变更

spring - 如何自定义 BigDecimal 的默认消息

spring - 如何使用java代码以编程方式创建liquibase dbchangelog?

java - 一对多的 Hibernate 持久性很慢