看了很多Hibernate的书,发现对于po类的实现原则中有一条是关于 equals() 和 hashCode()的实现,这两个方法众多书中都要求用业务主键来作为因子来实现equals() 和 hashCode()。 但是如果po类实例在业务的其它流程中被要求equlas要通过比较对象所有属性是否相等。这种情形该怎么办,难道从数据库取出后立马再转换成另外一个类对象,再去处理其它流程吗? 各位在处理这种情形时有何妙招?
我想到2个办法: 1,给你的PO类实现Comparable接口,里面实现业务属性的比较,然后返回0代表相等,返回别的值代表不相等。 2,做一些具有重载函数的帮助类,帮你进行比较操作,比如:
Java代码
class EqulasUtil{
bool isSame(ClassA src, ClassA target) {...}
bool isSame(ClassB src, ClassB target) {...}
...
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。