重写equals方法

在数据库中,识别一条记录的唯一方式是根据主键值,如果有两条记录,它们拥有同样的主键值,则它们在数据库中代表同一字段的记录。

java而言要识别两个对象是否为同一对象有两种方式:1.内存地址识别(“==”号识别);2.根据equals()、hashCode()中的定义识别。

在hibernate中,如果在同一个session中根据相同查询得到了相同记录,它们会有相同的内存地址。但是如果是不同的session中查询得到了相同记录,它们的内存地址就不同。因此,使用“==”来比较两条记录是否代表数据库中的同一记录是不可行的。如果有必要比较通过查询后的内容是否相同,必须重写equals()与hashCode()方法。

== 判断是你比较值的地址,equals比较的是你两个数值是否相等。

 @Override  
    public boolean equals(Object otherObject) {  
        // 判断内存地址是否相同  
        if (this == otherObject) {  
            return true;  
        } else {  
            // 判断是否为User对象  
            if (!(otherObject instanceof User))  
                return false;  
        }  
        User user = (User) otherObject;  
        // 判断属性值是否相同  
        if (id == user.id && username.equals(user.username) && password.equals(user.password) && age == user.age) {  
            return true;  
        }  
  
        return false;  
    }  
  
    @Override  
    public int hashCode() {  
        int result;  
        result = username.hashCode() + password.hashCode();  
        result = 29 * age + result;  
        return result;  
    }  
  
}  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值