开发者社区 问答 正文

对HIbernate 之 equals() 和 hashCode()的实现原则的困惑

看了很多Hibernate的书,发现对于po类的实现原则中有一条是关于 equals() 和 hashCode()的实现,这两个方法众多书中都要求用业务主键来作为因子来实现equals() 和 hashCode()。 但是如果po类实例在业务的其它流程中被要求equlas要通过比较对象所有属性是否相等。这种情形该怎么办,难道从数据库取出后立马再转换成另外一个类对象,再去处理其它流程吗? 各位在处理这种情形时有何妙招?

展开
收起
游客ufivfoddcd53c 2020-01-03 19:42:33 797 分享 版权
1 条回答
写回答
取消 提交回答
  • 我想到2个办法: 1,给你的PO类实现Comparable接口,里面实现业务属性的比较,然后返回0代表相等,返回别的值代表不相等。 2,做一些具有重载函数的帮助类,帮你进行比较操作,比如:

    Java代码

    class EqulasUtil{  
      
     bool isSame(ClassA src, ClassA target) {...}  
      
     bool isSame(ClassB src, ClassB target) {...}  
      
     ...  
      
    }
    
    2020-01-03 19:43:05
    赞同 展开评论
问答分类:
问答标签:
问答地址: