@Transaction 怎么手动提交 mybatis-plus
时间: 2023-10-13 15:15:08 浏览: 87
表- @TRANSACTION关键字取值-asp学习课件
在 MyBatis-Plus 中,可以通过 Spring 的事务管理器 `org.springframework.transaction.PlatformTransactionManager` 来进行事务管理,其中包括手动提交事务。
具体操作步骤如下:
1. 在需要进行事务管理的方法上添加 `@Transactional` 注解,同时指定事务管理器。
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Autowired
private PlatformTransactionManager transactionManager;
@Override
@Transactional(transactionManager = "transactionManager")
public boolean updateUser(User user) {
// 业务逻辑处理
int result = userMapper.updateById(user);
// 手动提交事务
TransactionStatus status = ((DataSourceTransactionManager)transactionManager).getTransaction(new DefaultTransactionDefinition());
((DataSourceTransactionManager)transactionManager).commit(status);
return result > 0;
}
}
```
2. 在需要手动提交事务的位置,获取 `TransactionStatus` 对象并调用 `commit` 方法进行手动提交。
需要注意的是,获取 `TransactionStatus` 对象时需要使用当前事务管理器 `transactionManager` 进行获取。
```java
TransactionStatus status = ((DataSourceTransactionManager)transactionManager).getTransaction(new DefaultTransactionDefinition());
((DataSourceTransactionManager)transactionManager).commit(status);
```
这样就可以手动提交事务了。
阅读全文