Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Hibernate中PO的equals()和hashCode()方法的覆写方法

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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;
 }

}




相关文章

相关软件