在域/服务层和Dao层中使用此@Transactional
注释有什么区别。它是否会在域图层中提供任何优势?@ Spring中各层之间的交换注释
0
A
回答
0
您使用@Transactional
注释的地方指定了您的交易范围。
在DAO层中使用它时,您指定每个DAO操作将在事务中提交。
在服务中使用它时,您指定每个服务操作(业务单位)都在事务中提交,因此建议这样做,因为通常服务方法表示应该包含在同一事务中的业务单位,因为任何故障都应该滚动支持整个业务部门。
1
在服务层中使用@Transactional
是个好习惯,因为它管理着识别数据库和/或业务事务范围所需的逻辑。设计中的持久层不知道事务的范围。
DAOs可以像其他任何bean一样制作@Transactional
,但在服务层中使用它是一种常见做法。我们倾向于这样做,因为我们想要分离问题。持久层只是从数据库中来回取回/存储数据。
例如,如果我们想从一个账户转移一些金额到另一个账户,我们需要两个操作,一个账户需要借记其他需要贷记的账户。所以,这些操作的范围只有服务层而不是持久层。
持久层无法知道它在哪个事务中,例如使用方法person.updateUsername()
。它应该始终运行在它自己的单独事务中吗?没有办法知道,这取决于调用它的业务逻辑。
以下几个线程,你应该阅读
0
@Transactional:有两个不同的概念来考虑,每个都有它自己的范围和生命周期:持久化上下文,数据库事务 它看起来像你更多的数据库牵引:
@Transactional注释本身定义了单个数据库交易的范围上。数据库事务发生在持久化上下文的范围内。
持久化上下文在JPA EntityManager中,使用休眠会话在内部实现
相关问题
- 1. 用各种语言编写的程序之间交换数据
- 2. 在标准层和免费层之间进行交换 - Azure
- 3. Spring Portlet中的@GetMapping注释
- 4. Spring @ComponentScan注释
- 5. 将spring security xml转换为注释
- 6. 将代码转换为Spring注释
- 7. 用Spring注释替换HttpServletRequest和HttpServletResponse
- 8. 您是否严格遵循项目中各层之间的n层架构和关注点分离?
- 9. Spring批注与注释
- 10. 几个DAO层之间的交易?
- 11. Spring名称注释
- 12. 注释在Spring MVC
- 13. Spring MVC注释@ModelAttribute
- 14. HTMLAgilityPack选择注释之间的节点
- 15. 地标和注释之间的区别
- 16. onetomany和manytomany注释之间的区别
- 17. 如何在eclipse中提交之后更改提交CVS注释?
- 18. 在各组图像之间切换?
- 19. IE中的条件注释9.注释和条件语句之间的空格
- 20. Django的注释值与各界
- 21. @计划的注释Spring
- 22. Spring的@ModelAttribute方法注释
- 23. 在Python中的菜单之间交换
- 24. Java-EE6:如何设计在各层之间传递的@Entity?
- 25. 具有referenceData中的注释的Spring SimpleFormController
- 26. 注释中的spring-restdocs字段说明
- 27. 在jsp中获取注释的Spring bean
- 28. Spring中@Service注释的功能
- 29. @ wicket项目中的@component spring注释?
- 30. Spring中@Configurable注释的XML等价物
感谢您的回应。但是我使用这个注释来回滚。我想在Domain和Dao层中清楚地理解这个注解的用法。我也想知道使用@Transactional注释的优缺点 –