例如,我有项目实体:
public class Project {
...
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "manager_id")
private User manager;
@Column(name = "manager_id")
private Long managerId;
...
}
如何在没有延迟加载管理器实体的情况下将列“manager_id”映射到“managerId”属性?
答案 0 :(得分:0)
如何映射列" manager_id"到" managerId"
你不需要这样做。即使对于懒惰的实体,Hibernate已经有manager.id
。
如果您有懒惰属性,则可以通过以下方式获取标识符:
LazyInitializer initializer = ((HibernateProxy) project.getManager()).getHibernateLazyInitializer();
Long managerId = (Long) initializer.getIdentifier();
请从private Long managerId
Project
字段
public class Project {
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "manager_id")
private User manager;
}
您可以参考更常见的方法:Persistent#getPid()