加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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定义相等性

或者,我选择的两个是不重要的.

解决方法

绝对B和C,因为即使在实体持久化之前,您也希望equals()合约有效.你说自己:

these are the columns that actually
define identity in the business sense

如果是这样,那就是equals()应该使用的逻辑.数据库密钥是数据库的关注点,应该与您的业务层无关.

并且不要忘记在hashcode()中使用相同的属性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读