@Transactional)
时间: 2023-08-19 16:16:24 浏览: 84
回答: 在Spring中,@Transactional注解可以用于标记一个方法或类需要进行事务管理。然而,有时候我们会遇到@Transactional注解不起作用的情况。这可能是由于以下两种原因导致的。
第一种原因是事务传播行为的设置。事务传播行为定义了一个方法在一个已经存在的事务中运行时如何处理事务。如果@Transactional注解的propagation属性被设置为Propagation.NOT_SUPPORTED,那么该方法将不会在事务中执行。\[2\]
第二种原因是方法上没有@Transactional注解。在Spring中,只有被@Transactional注解标记的方法才会被事务代理所管理。如果一个方法没有被@Transactional注解标记,那么事务代理将不会对该方法进行事务管理,直接执行方法而不开启事务。\[3\]
因此,如果遇到@Transactional注解不起作用的情况,我们需要检查事务传播行为的设置以及方法是否被正确地标记了@Transactional注解。
#### 引用[.reference_title]
- *1* *3* [@Transactional注解加不加 rollbackFor = Exception.class 的区别和@Transactional 注解失效的3种原因及...](https://blog.csdn.net/guoqi_666/article/details/126505719)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [@Transactional](https://blog.csdn.net/ChineseSoftware/article/details/122574500)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文