sqlsession

同一个select,在同一个事务中(同一个sqlsesion对象),会优先从sqlsession缓存中获取。

容易出问题的代码:

在一个较大的事务中,某个函数A内调用了select,并且对结果进行了操作,比如set。然后在当前函数A中又调用了另一个函数B,函数B内也调用了此select,并且需要对结果进行判断。

因为在函数A中对结果进行了操作,并且缓存到了sqlsession中。所以在函数B中拿到的信息并不是和数据库中的一样。可能会对函数B的一些逻辑(权限,if等)判断有影响,导致整个事务逻辑失败。


版权声明:本文为ChinaMuZhe原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。