我有一个User实体,它与UserSkill实体有一对多的关系.UserSkill可以是活动的和非活动的(非活动设置为技能删除,而不是完全删除)。问题是,大多数情况下,主动技能对最终用户很重要(以后可能会将不活动技能用于统计目的)。考虑到这一点,当我从数据库查询User实体时,大部分时间只想通过访问 active 技能。
我的问题是,哪一种实施更好:
getUserSkills (简单getter)和getActiveUserSkills (带一些过滤的getter)在User实体上,并且大部分时间都使用getActiveUserSkills。(似乎每个人都在说POJO应该是POJO,而不是其他逻辑。)userSkillService,还有getActiveUserSkills(User user)方法,它只返回活动用户技能。然后,当我需要的时候,我会和User一起使用这些积极的技能。这里的问题是,每次我获得User时,我都会有一些不必要的不活跃的技能。其他执行建议也值得欢迎。谢谢!
发布于 2017-08-17 07:35:27
当然,第一个解决方案更好。当实体只需提供信息而不需要任何附加依赖时,就没有理由使用服务。
如果需要访问存储库或其他服务,以确定哪些技能是活动的(因为通常不希望实体层依赖于服务和存储库),那么使用外部服务将非常有用。因此,如果加载所有技能都会导致性能或内存问题,那么我会说,如果加载所有技能都会导致性能或内存问题,那么应该采用服务或存储库的方式,并且您希望执行一个查询,以获得许多技能中仅有的几个活动技能。但这里似乎不是这样的。
https://stackoverflow.com/questions/45729053
复制相似问题