Hibernate中PO的equals()和hashCode()方法的覆写方法
equals方法是判断PO是否相等的重要方法,当然覆写equals方法的同时要求也是要覆写hashCode方法的,以下实例了PO中覆写的一般方式.
package test.base;
import java.io.Serializable;
public abstract class UserInfo implements Serializable {
private int hashCode = Integer.MIN_VALUE;
// primary key
private java.lang.String userId;
// fields
private java.lang.String userName;
private java.lang.String userAccount;
public UserInfo() {
}
public UserInfo(java.lang.String userId) {
this.setUserId(userId);
}
public java.lang.String getUserId() {
return userId;
}
public void setUserId(java.lang.String userId) {
this.userId = userId;
//因为hashCode()方法和主键值有关,重新设置主键值时要还原hashCode值.
this.hashCode = Integer.MIN_VALUE;
}
public java.lang.String getUserName() {
return this.userName;
}
public void setUserName(java.lang.String userName) {
this.userName = userName;
}
public java.lang.String getUserAccount() {
return this.userAccount;
}
public void setUserAccount(java.lang.String userAccount) {
this.userAccount = userAccount;
}
public boolean equals(Object obj) {
if (null == obj)
return false;
if (!(obj instanceof test.base.UserInfo))
return false;
else {
test.base.UserInfo mObj = (test.base.UserInfo) obj;
if (null == this.getUserId() || null == mObj.getUserId())
return false;
else
return (this.getUserId().equals(mObj.getUserId()));
}
}
public int hashCode() {
//这样做的目的就是hashCode值只需要计算一次.
if (Integer.MIN_VALUE == this.hashCode) {
if (null == this.getUserId())
return super.hashCode();
else {
String hashStr =
this.getClass().getName()
+ ":"
+ this.getUserId().hashCode();
this.hashCode = hashStr.hashCode();
}
}
return this.hashCode;
}
}
- 最新文章
- ★★★ 检查应用程序的版本号 ★★★[01-10]
- ★ 你知道javascript里数组的最大长..[01-10]
- 实现EMAIL本页功能[01-10]
- 如果你想打开一个新页面时给浏览者一些惊喜的话,试试这个[01-10]
- javascript 实现日历式日期选择[01-10]
- 卷帘一样的文字显示效果,为你的网页增加不少生色哦![01-10]
- 相关文章
- 对连串英文自动换行的解决方法 IE5.5 无忧脚本[01-10]
- “在线访客”的制作方法[01-10]
- ASP导出Excel数据的四种方法[01-10]
- ASP中实现文件上传方法的研究[01-10]
- 讲解在线压缩和解压缩的ASP实现方法[01-10]
- 深入了解Flash AS中setInterval方法[01-10]
