是的,因为代理仍然包含ID。要获取
A代理的ID 而不初始化它,请首先声明要通过属性访问的ID:
@Entitypublic class A { @Id @Access(AccessType.PROPERTY) private int id; @oneToMany(fetch=LAZY) private List<B> list; public int getId() { return id; } public void setId(int id) { this.id = id; }}然后,只需读取ID:
b.getA().getId();
更改ID的访问类型是必要的,因为如果您使用字段访问,则Hibernate不会将
getId()方法与其他普通方法(在调用时会触发代理初始化)区分开。



