首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么插入两条相同的记录而事务不能回滚

为什么插入两条相同的记录而事务不能回滚
EN

Stack Overflow用户
提问于 2018-12-28 15:20:06
回答 1查看 34关注 0票数 1

我做了一个基本的javaweb项目,并在上面添加了spring事务配置,但没有效果。在此之前,它工作得很好。我在网上搜索了很多页面,那些配置和我的一样。

预期的结果是不会插入任何内容,但已插入一条记录。

请帮我找出问题所在,谢谢

我的服务实现路径is:com.lidaning.sys.user.service.UserInfoServiceImpl

代码语言:javascript
复制
 <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"></property>
 </bean>

 <tx:advice id="txAdvice" transaction-manager="txManager">
    <tx:attributes>
        <tx:method name="insert*" propagation="REQUIRED"/>    
        <tx:method name="*"/>
    </tx:attributes>
 </tx:advice>

 <aop:config>
    <aop:pointcut id="txPointcut" expression="execution(* com.lidaning.sys.user.service..*.*(..))" />
    <aop:advisor pointcut-ref="txPointcut" advice-ref="txAdvice"/>
 </aop:config>

代码语言:javascript
复制
@Override
public void insertUser(UserInfo u) {
    u.setId("1");
    u.setName("lidaning");
    u.setPassword("***");
    userInfoDao.insertUser(u);
    userInfoDao.insertUser(u);  //occur exception 
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-29 11:00:44

我知道原因了。由于spring加载了两次serviceBean (spring、springMVC),导致服务失去了事务的特性。当我将控制器从应用程序上下文中分离出来并将其放入springMVC中时,它就可以工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53955001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档