0
这已被讨论了很多(如here和there)和我使用“企业”键实现对Hibernate实体,如哈希码法时,听起来很有用:实施的hashCode和延迟加载
public class User {
private String username;
...
@Override
public int hashCode() {
//Calculate on base of username
}
}
这比在休眠生成ID的情况下使用ID更好(对于新实体它将为空)。
如果一个实体仅包含“虚拟”延迟加载的属性,该怎么办? 我可以计算基于它们的hashCode,并做到目前为止。现在我遇到了这样的问题:当调用hashCode()
时,会话被关闭,所以懒惰加载的属性不能再被访问。在这种情况下该怎么办?