mybatis执行两次相同的查询问题

时间:2022-09-16 12:47:45

最近做项目发现了mybatis的一个特性:


连续执行两次相同的查询,mybatis不会去数据库中查询,而是直接从sqlsession中取,返回的对象也是同一个对象。


如在一个类中有如下方法;


public void test(){

User user = userService.selById(id);


userService.deduct(id);

}


public void deduct(int id){

User user = userService.selById(id);

}


那么即使你没有将user对象做为参数传递给其他方法,在另一个方法里对user对象做的所有操作都会改变user对象,因为deduct方法里通过mybatis取到的user对象等于第一个方

法的user对象。