2 a9805943 a9805943 于 2016.03.14 19:50 提问

spring事务回滚只能配在service层吗。为什么我想在Test中添加事务不能进行回滚呢
<tx:advice id="txAdvice2" transaction-manager="txManager">
    <tx:attributes>
        <tx:method name="inserttwo*" propagation="REQUIRED"/>
    </tx:attributes>
</tx:advice>
<aop:config>        
    <aop:pointcut expression="execution(* com.test.*.*(..))" id="pointCu"/>
    <!-- <aop:pointcut expression="execution(* ssm.service.*.*(..))" id="pointCut"/> -->
    <aop:advisor advice-ref="txAdvice2" pointcut-ref="pointCu"/>
</aop:config>
 @Test
    public void inserttwo(){


        UserInfo user=new UserInfo();
        user.setEmail("email");
        user.setPassword("password");
        user.setUsername("d9805943");       
        userService.insert(user);
        int i=10/10;

我这样配调用inserttwo()方法后还是会插入这个userinfo

4个回答

shuijieshuijie
shuijieshuijie   2016.03.14 20:02
已采纳

第一:web层事务,这一般是针对那些安全性要求较高的系统来说的。例如电子商务网站。粒度小,一般系统用不着这么细。
第二:service层事务,这是一常见的事务划分, 将事务设置在业务逻辑上,只要业务逻辑出错或异常就事务回滚。粒度较小,一般推荐这种方式。
第三:数据持久层数据务,也就是常说的数据库事务。这种事务在安全性方面要求低。就是给一个简单的增删改之类的操作增加事务操作。粒度大

qq_20039385
qq_20039385   2016.03.14 20:07

有问题吗,插入了数据说明事物提交啦。你程序又没有异常。

a9805943
a9805943   2016.03.15 00:12

应该是10除0的我改了还是会提交数据到数据库的

u010837612
u010837612   2016.03.15 09:30

你用JUNIT来执行?junit执行的话,spring根本没有启动吧?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!