java – 在实现带有生成ids的实体的equals()时,最佳做法是什么?
发布时间:2020-12-14 16:29:58 所属栏目:Java 来源:网络整理
导读:如果我有一个表A,B,C,D的表 A:自动生成的id(PK) B C:组合必须是唯一的(这些是在业务意义上实际定义身份的列) D:其他一些列 现在,如果我将根据这个表创建业务对象(例如在Java中),那么哪个更好地实现了equals()方法: 基于A定义平等 根据B和C定义相等性 或
如果我有一个表A,B,C,D的表
A:自动生成的id(PK) B& C:组合必须是唯一的(这些是在业务意义上实际定义身份的列) D:其他一些列 现在,如果我将根据这个表创建业务对象(例如在Java中),那么哪个更好地实现了equals()方法: >基于A定义平等 或者,我选择的两个是不重要的. 解决方法
绝对B和C,因为即使在实体持久化之前,您也希望equals()合约有效.你说自己:
如果是这样,那就是equals()应该使用的逻辑.数据库密钥是数据库的关注点,应该与您的业务层无关. 并且不要忘记在hashcode()中使用相同的属性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |