首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Java对象辨别(Hibernate应用)

2012-10-09 
Java对象识别(Hibernate应用)本文在http://sarin.iteye.com/blog/603684和http://sarin.iteye.com/blog/64

Java对象识别(Hibernate应用)
    本文在http://sarin.iteye.com/blog/603684和http://sarin.iteye.com/blog/644678的基础之上继续研究,探究Java对象识别时的应用,并通过Hibernate来说明。
    Java语言中判断对象是否相等有两种方式,一种是使用“==”来比较,一种是使用equals()方法来比较,前者是比较两个对象的引用地址是否相同,即两个引用地址是否指向同一个对象,而后者是比较对象的内容是否一致。
    equals()方法是Object类中定义的方法,所有Java类都可以直接或间接继承这个方法,通过方法覆盖就可以实现自己的equals()方法,而这个方法的原始定义如下:


    持久化类的其他属性参照toString()方法里的参数即可。我们使用Eclipse为我们自动生成了equals()方法,比较内容只是属性标识符(主键),因为持久化类对应数据库表中的记录,而记录由主键唯一标识,所以使用标识符属性来作为equals()方法比较的内容就最合适了。
    在Hibernate中判断两个持久化对象是否相等,需要全面考虑,因为这里面的判断因素比较多。首先在相同的Session对象中,只要标识符属性值相同,那么两个持久化对象就相等,看下面的代码:
System.out.println(user1.equals(user2));

    得到的结果也是正确的,equals()方法的实现就是前面持久化类中的,而这个方法是可以借助Eclipse完成的,只需勾选需要比较的属性即可。
1 楼 chian_xxp 2010-09-16   多谢,似乎可以结合非主键、唯一性约束判断。谢谢。 2 楼 sarin 2010-09-16   chian_xxp 写道多谢,似乎可以结合非主键、唯一性约束判断。谢谢。
主键约束要求唯一而且非空,唯一性约束可以为空。非主键如何唯一确定一条记录呢?

热点排行