Java 如何避免存储库和域层中的重复?
假设我们有一个person类,有两种不同的情况: 1) 我们需要从数据库中获取所有成人用户Java 如何避免存储库和域层中的重复?,java,repository,domain-driven-design,Java,Repository,Domain Driven Design,假设我们有一个person类,有两种不同的情况: 1) 我们需要从数据库中获取所有成人用户 2) 我们需要分成两人一组-成人和非成人 因此,在第一种情况下,我更愿意在存储库层使用where子句进行操作。 从年龄>18岁的人中选择* 在第二种情况下,我有一个方法来确定是否是成年人 在这种情况下,避免sql和java代码中逻辑重复的最佳做法是什么?一种可能的解决方案: 在Person实体中添加像isAdult这样的属性,它可以是计算属性(returnage>18),它是逻辑所在的单一位置 在数据库
2) 我们需要分成两人一组-成人和非成人 因此,在第一种情况下,我更愿意在存储库层使用where子句进行操作。
从年龄>18岁的人中选择*
在第二种情况下,我有一个方法来确定是否是成年人
在这种情况下,避免sql和java代码中逻辑重复的最佳做法是什么?一种可能的解决方案:
- 在Person实体中添加像
这样的属性,它可以是计算属性(isAdult
),它是逻辑所在的单一位置returnage>18
- 在数据库中存储
值isAdult
- 当需要从数据库中获取所有成年人时,您只需查询
Select*from person,其中isAdult=1
- 当需要在逻辑上区分成年人时,只需使用属性
if(person.isAdult())…