Closing+non+transactional+SqlSession
时间: 2024-01-06 13:23:45 浏览: 120
Closing non transactional SqlSession是MyBatis框架中的一个警告信息,它表示在没有开启事务的情况下关闭了SqlSession。这通常是由于在没有开启事务的情况下执行了数据库操作,导致SqlSession没有被正确关闭。解决这个问题的方法是在启动类上添加@EnableTransactionManagement注解,或者在方法上添加@Transactional注解,并设置propagation属性为REQUIRED,rollbackFor属性为Exception.class,以确保在执行数据库操作时开启事务并正确关闭SqlSession。
以下是两种解决方法的示例代码:
1. 在启动类上添加@EnableTransactionManagement注解
```java
@SpringBootApplication
@EnableTransactionManagement // 添加注解
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
```
2. 在方法上添加@Transactional注解
```java
@Service
public class MyService {
@Autowired
private MyMapper myMapper;
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // 添加注解
public void doSomething() {
// 执行数据库操作
}
}
```
阅读全文