iBATIS+JUnit4+注解 测试通过,数据库中无变化
测试增删改时通过了测试,但是数据库中没有相应的变化。我已经配置'创建事务代理对象'和'自动事务代理'
即<bean id="interceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
和 <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
数据库中还是没有记录。
这里有个现象:
两个测试类:UserTest1.java, UserTest2.java
UserTest1使用注解+JUnit4, UserTest2使用一般的JUnit3
当先运行了UserTest1中的testAddUser()后(DB中没有数据),然后运行UserTest2中的testAddUser()后DB中数据id从2开始。
解决:因为在执行数据时开启了事务,数据被放在iBATIS的一级缓存中,而操作之后没有提交事务。在测试的方法添加annotation: @Rollback(false) 即可。