spring事务...事务...事务...readonly事务

shit...又被readonly事务耍了几个小时...

 

这里说的是spring + hibernate。

一个事务被定义成readonly的,本身并没有什么问题,整个事务周期内都是readonly的。但是...但是呢,如果同时使用了openSessionInView等会使多个事务共享同一个session的情况,那就需要注意了。由于是多个事务共享Session的,所以如果在readonly的事务中对与session关联的entity进行了修改(如改变了属性值等),则在别的非readonly的事务中会把在readonly事务中的修改提交到数据库,因为在非readonly的事务中会对Session进行flush操作,导致在readonly事务中仍然与session关联着的被修改过的entity的修改提交到数据库。

 

 

好吧,写得TMD太乱了。

你可能感兴趣的:(spring事务)