SPRING 声明式XML事务和注解式事务, 哪个优先级更高?
这个问题其实早就有了, 不过很懒 一直都没搞, 这次有个新项目, 刚好又学了点springjunit测试, 发现了一点问题, 也对以往的疑惑做了一些测试
SPRING 声明式XML事务和注解式事务, 哪个优先级更高?
几个关键代码, 其他省略
spring有2种方式声明事务
1 XML文件
2 注解
测试1 XML里设置 read-only="true", 注解 read-only="false" 执行出错 看来是XML优先级高
org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
测试2 XML里设置 read-only="false", 注解 read-only="true" 执行成功 看来还是XML优先级高
测试3 XML里不设置 注解 read-only="true" 执行出错
不过和有的人得出的结论相悖 http://www.iteye.com/problems/10112
本人 spring 版本 3.0.6
不知道有没有人做类似测试.
还有一个问题, 就是junit 事务的问题@Testpublic void testSaveRole() {roleManager.saveRole();//此方法里的事务可以回滚}@Testpublic void testSaveRole() {//但是这样写, 事务就不回滚Role role = new Role("role1");role = roleDao.save(role);if (role.getId() != null)throw new RuntimeException("error");role = new Role("role2");role = roleDao.save(role);}
不知道是什么原因.