首先,我可能是在问一些以前被问过和回答过的问题,但是我无法得到一个搜索结果。我们通常在服务层定义事务注释
总监-> 经理-> 刀-> 奥姆。
我现在有一个情况,我需要在基于客户端站点的域模型之间进行选择。 假设客户端 A 正在使用我的域模型,那么其他客户端站点会给我一个 Web 服务,而不是使用我们的域模型。
我应该替换哪一层。我相信它必须是 DAO,它将从 Web 服务获取数据并将其发送回来。也就是说,两个独立编写的 DAO 层,并根据场景插入。
我现在已经意识到,当我们将 @Transactional
放在服务层时,我们一直在进行紧密耦合(如果存在这种情况或者说没有松散耦合)。这么多的大脑不可能是错的,或者他们是错的(我对此表示怀疑)。
所以问题是“ @Transactional
”应该放在服务层还是 DAO?”它是服务层向下,我应该更换。
11年过去了,依然有意义。如果我回头看看这个项目,我对领域模型的理解显然出了问题。我认为 ORM 层是一个域模型,我们希望使用 ORM 和分离的实体,没有任何数据映射,也没有任何 DTO。那是当时的潮流。现在域模型不再是 ORM,拥有一个合适的域模型和使用 ORM 或 Webservices 是数据源来处理这个问题。像许多人指出的那样,是的,服务是适合它的地方,有适当的域模型,而不把 JPA (ORM)当作域模型。