【发布时间】:2013-06-09 13:25:37
【问题描述】:
我在 POJO 中编写正确的 equals() 函数以与 hierbante 一起使用时遇到问题。我的主要问题是 List 的。
例如,我有一个实体Request,它有一个Persons 列表
@ManyToMany(cascade = CascadeType.ALL)
@LazyCollection(LazyCollectionOption.FALSE)
@JoinTable(name = "JOIN_TABLE_REQUEST_TO_PERSON", joinColumns =
@JoinColumn(name = "REQUEST_ID"), inverseJoinColumns =
@JoinColumn(name = "PERSON_ID"))
private List<Person> proxyList = new ArrayList<Person>();
现在我使用 Netbeans 7.3 生成的 equals() 并为此列表生成代码:
...
if (this.proxyList != other.proxyList && (this.proxyList == null || !this.proxyList.equals(other.proxyList))) {
return false;
}
...
但是,当我将 Persons 添加到列表时,这无法正常工作。我不得不将此代码更改为:
...
if (!this.proxyList.containsAll(proxyList)) {
return false;
}
...
应该如何正确完成?您还有其他关于为 hibernate 编写 equals 的最佳实践吗?
【问题讨论】:
标签: java hibernate entity equals pojo