开发者社区> 问答> 正文

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

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

展开
收起
游客ufivfoddcd53c 2020-01-03 19:42:33 779 0
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
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载