gpt4 book ai didi

hibernate - 在DAO,服务层架构中使用spring MVC和Hibernate的正确方法是什么

转载 作者:行者123 更新时间:2023-12-04 05:04:44 33 4
gpt4 key购买 nike

我正在使用带有 Hibernatedaosupport 的 Spring MVC对于我的 DAO 类(class)。这里很困惑从哪里开始事务,应该在服务层还是在 DAO 层?

我的 View 与服务层交互。 DAO 被注入(inject)到服务中。

在 DAO、服务层架构中使用 Spring MVC 和 Hibernate 的正确方法是什么?

最佳答案

恕我直言,交易应该转到服务层。通常,一项业务事务由多个查询和更新组成。如果您放置 @Transactional仅在 DAO 层,每个查询和更新都会在单独的事务中运行,这实际上违背了事务的目的。

但是如果服务是 @Transactional ,每个数据库交互加入一个主事务,当 Web 层进入服务层时启动。请注意,在这种情况下,如果 Web 层运行多个服务方法,它们中的每一个都将在单独的事务中运行(同样的问题上移一级)。但放置 @Transactional在 web 层中可能会引入意想不到的副作用,例如 N+1 问题,否则会被捕获。因此,尝试将一项业务事务保留在从 Web 层调用的一种服务方法中。

关于hibernate - 在DAO,服务层架构中使用spring MVC和Hibernate的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8993318/

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