例如,有一个实体“用户”,其@ManyToOne(fetch=Lazy)
字段为“团队”。我用过entityManager.find(User.class, userId)
获取用户。此时,如果我调用user.getTeam()
查询将被发送到数据库以获取团队对象。有没有办法在没有额外查询的情况下获取团队 ID?
问问题
2024 次
2 回答
4
出于这些目的,我确实映射了该列两次。insert="true"
一次与和进行多对一update="true"
。
然后我附加一个TeamId属性并将其映射为 intinsert="false"
和update="false"
. 我使用的不是column
映射formula
。
TeamId 在第一次选择后可用。
于 2012-11-12T11:22:01.903 回答
1
If you do not want to use Hibernate, add a @PostLoad method on you User entity, which will set your teamId
- Add a @Transient teamId property
- Add a @PostLoad method :
Add a @PostLoad method
@PostLoad
public void updateTeamIdInfos() {
if (getTeam() != null) {
setTeamId(getTeam().getId());
}
}
于 2012-11-12T13:37:15.947 回答