Posted on 2011-12-01 12:24
小圈 阅读(85)
评论(0) 编辑 收藏
最近在学习ssi,还处于非常基础的阶段。在做练习项目的时候忽然想到一直只知道框架整合中Spring主要负责事务管理、安全等方面的,但是Spring是否真的是进行了事务管理。我做了一个小测试,在ibatis中将子表insert语句写成错误的语句,主表的插入语句是正确的。如果spring进行了事务管理,在主表先完成了insert操作后,当子表发生错误,将会调用rollback方法,也就是说主表做的insert操作将会无效,两张表都恢复到操作前的状态。但我查看数据库表中的数据后发现未发生原来预想的结果,主表的信息改变了,子表没改,这实在是很困惑啊。
我使用的BeanNameAutoProxyCreator自动创建代理的,查看了一下配置文件后才知道原来没有在自动代理的interceptorAttributes中没有对相应的manager层进行代理。看来我还是不明白Spring的事务代理啊,只是按部就班地写代码,而不懂代码的意思,是没有一点乐趣的