我有这些实体:
@Entity
public class Room {
@ManyToOne(optional=true,fetch=FetchType.LAZY)
private Player player1;
...
}
@Entity
public class Player {
@Id
@Column(updatable=false)
private long id;
public long getId() {
return id;
}
...
}
现在,里面的这个声明Room
...
player1.getId();
...将导致整个Player
要从数据库中获取的实体。但是,我只需要它的主键,id
,它应该已经有了(否则它如何获取数据?)。
我怎样才能访问懒惰的人Player
代理的id
不触发数据库访问?
Hibernate 应该将对象的 id 也链接到当前的Session
。并且有一个获取标识符() http://docs.jboss.org/hibernate/orm/3.5/javadoc/org/hibernate/Session.html#getIdentifier%28java.lang.Object%29方法上的Session
那应该得到id。文档没有对此进行任何说明,但通常它不应该初始化该对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)