spring + hibernate , 弄了半天,还是不会回滚,哪位大虾帮帮忙
下面是配置事物的部分xml <aop:aspectj-autoproxy></aop:aspectj-autoproxy>
<aop:config>
<aop:pointcut id="transacionPointcut" expression="execution(* com.serviceImpl.UserServImpl.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="transacionPointcut"/>
</aop:config>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="do*" rollback-for="Exception" propagation="REQUIRED"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<bean id="userDao" class="com.dao.impl.UserDaoImpl" autowire="byName"></bean>
<bean id="userServ" class="com.serviceImpl.UserServImpl"> 
<property name="userDao" ref="userDao">
</property>
</bean>
</beans>这个是我要拦截的方法
public void doSomething() throws RuntimeException{
User user1 = new User();
user1.setName("测试1");
user1.setPassword("123");
userDao.insertUser(user1);

User user2 = new User();
user2.setName("测试2");
user2.setPassword("123");
userDao.insertUser(user2);

throw new RuntimeException("例外");

}
不知道为什么不会回滚

解决方案 »

  1.   

    你用的是不是mySql啊? mysql默认安装好像不支持事务。。个人愚见。
      

  2.   

    数据库是mySql
    郁闷了很久
      

  3.   

    你是怎么配置引擎的??能告诉下我么。我的是MYSQL,默认innodb,我设置set autocommit=0;
    但是还是没起作用。。
    能告诉我你是怎么配置引擎的么。
      

  4.   

    查看数据表的引擎用:show table status from 数据库名 like "数据表名";
    修改数据表引擎用:alter table 数据表名 engine = "InnoDB";
    如果是InnoDB的话就不用改啦
    autocoomit是事务,根据mysql的文档如果等于1是立即提交,但在transction中只有遇到commit或rollback才提交
      

  5.   

    呵呵 MyISAM 引擎是不支持事务的,只有 InnoDB 才支持事务