目的:在Hibernate中通过比较两个持久化对象的标识符属性值id来判断二者是否相等,需要重写实体类的equals()方法和hashCode()方法。
String类的equals()方法代码如下:
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}
hashCode()方法的作用是返回指定对象的哈希值。
Customer类包含以下属性:id;userName;password;realName;address;mobile。
Order类代码如下图:
test类代码如下:
输出结果如下图: