如果有人能解释一下这个注解的作用以及什么时候我们会使用它:
@Transactional(propagation=Propagation.REQUIRED)
感谢
如果有人能解释一下这个注解的作用以及什么时候我们会使用它:
@Transactional(propagation=Propagation.REQUIRED)
感谢
如果你需要一个非专业人士的解释,来解释在Spring文档中提供的使用方法之外的内容。
考虑以下代码...
class Service {
@Transactional(propagation=Propagation.REQUIRED)
public void doSomething() {
// access a database using a DAO
}
}
当调用 doSomething() 时,它知道在执行之前必须在数据库上启动一个事务。如果调用此方法的调用方已经开始了一个事务,则该方法将在当前数据库连接上使用相同的 物理 事务。
这个 @Transactional
注释提供了一种告诉代码在执行时必须有一个事务的方法。如果没有事务,则代码不会运行,所以您可以在代码中做出这样的假设:您不会留下不完整的数据在数据库中,或者必须清理一些异常情况下的内容。
事务管理是一个相当复杂的主题,因此希望这个简化的答案能有所帮助。
@Transactional
,则不需要在该事务中调用的DAO方法中再次添加@Transactional
。 - BraddoSomething()
调用了另一个没有@transactional注释的嵌套方法,那么这个事务是否也会应用于调用方法? - thisarattrhttp://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/transaction.html
<tx:annotation-driven/>
启用了基于注解的事务支持,并在任何类/方法上使用@Transactional(propagation=Propagation.REQUIRED)进行标注,则Spring框架会启动一个事务并执行该方法,最后提交事务。如果发生任何RuntimeException异常,则事务将回滚。