我意识到 Morphia 和 Hibernate 等持久性框架依赖于域对象上的注释来发挥其魔力。在某种程度上,在我看来,这将持久性问题插入到领域层中,这是我们应该努力避免的。
我是否应该尝试通过使用外部配置文件或者将 DTO 与域模型分开来避免这种情况?或者持久层和域层之间的这种小泄漏通常被认为是可以接受的?
在我使用 Spring 和 Hibernate 对现有系统进行的最新迭代中,我已经开始处理类似的问题。当第一次实现 Hibernate 模型时,我努力通过数据访问对象将服务类中的应用程序逻辑与持久性逻辑分开。去年构建新系统时,我允许大多数持久性对象充当域对象,因为这是权宜之计的解决方案。
然而,我正在根据不断变化的业务需求重新设计同一个系统,并且我再次倾向于分离这些问题。我刚开始新设计几天,但我已经发现自己更喜欢使用一个对象来表示内存中关注点对象,同时使用一个单独的基于持久性的对象将其状态更改存储到数据库中。例如,我有一个Lead
为了持久性和并行性ActiveLead
跨交易存在。
我还不确信这是最好的方法,但从直觉上讲这是有道理的。我渴望拥有一系列与持久性无关的——不,持久性——ignorant-- 跨数据库事务保持内存驻留的对象集,而不考虑标准 CRUD 简化。但我明白,最终所有的数据库操作都是以CRUD的形式实现的。这两个世界必须碰撞,而诀窍在于让它们和谐共舞。
Hibernate 对域对象的注释?在我看来,这是易于实施与易于维护之间的一个很好的折衷。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)