Transactional注解手动提交事务
时间: 2023-10-12 09:19:27 浏览: 98
JAVA设置手动提交事务,回滚事务,提交事务的操作
@Transactional 注解通常用于标注在需要进行事务管理的方法或者类上,表示该方法或类需要在一个事务中进行操作。默认情况下,Spring 会使用声明式事务来管理,即将事务的操作从业务逻辑中分离出来,交由AOP代理对象来管理。
在手动提交事务的场景下,可以通过在方法或类上加上@Transactional 注解,并将其属性设置为:
```java
@Transactional(propagation = Propagation.REQUIRES_NEW)
```
这样可以将当前方法或类的事务设置为独立的新事务,当方法执行完毕后,需要手动提交事务:
```java
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void someMethod() {
// 执行业务逻辑
...
// 手动提交事务
TransactionAspectSupport.currentTransactionStatus().flush();
}
```
其中,`TransactionAspectSupport.currentTransactionStatus().flush()` 方法可以手动提交当前事务,将其持久化到数据库中。同时,需要注意的是,手动提交事务需要在当前方法或类中加上 @Transactional 注解,否则手动提交事务会失效。
阅读全文