gpt4 book ai didi

java - 域对象中的持久性注释是一种不好的做法吗?

转载 作者:IT老高 更新时间:2023-10-28 21:01:10 25 4
gpt4 key购买 nike

我意识到 Morphia 和 Hibernate 等持久性框架依赖于域对象上的注释来发挥作用。在某种程度上,在我看来,这是将持久性问题插入到域层中,这是我们应该努力避免的。

我是否应该尝试通过使用外部配置文件或将 DTO 从域模型中分离出来来避免这种情况?或者,持久层和域层之间的这种小泄漏通常被认为是可以接受的吗?

最佳答案

在我对使用 Spring 和 Hibernate 的现有系统的最新迭代中,我已经开始处理类似的问题。在第一次实现 Hibernate 模型时,我努力通过数据访问对象将服务类中的应用程序逻辑与持久性逻辑分开。去年构建新系统时,我允许大部分持久性对象作为域对象,因为这是权宜之计。

但是,我正在根据不断变化的业务需求重新设计相同的系统,并且我再次倾向于分离这些关注点。我才刚接触新设计几天,但我发现自己更喜欢有一个代表内存中关注对象的对象,而使用一个单独的基于持久性的对象将其状态更改存储到数据库中。例如,我有一个用于持久性的 Lead 和一个跨事务存在的并行 ActiveLead

我还不相信这是最好的方法,但在直觉层面上它是有道理的。我一直渴望拥有一组与持久性无关——不,持久性——无知——在数据库事务中保持内存驻留的对象集合,而不考虑标准的 CRUD 简化。然而我知道最终所有的数据库操作都是作为 CRUD 实现的。这两个世界必须碰撞,而诀窍在于让它们和谐共舞。

域对象上的 hibernate 注释?在我看来,这是易于实现与易于维护之间的良好折衷。

关于java - 域对象中的持久性注释是一种不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10099636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com