Hibernate4+springmvc4 aop配置事务不回滚 50

我配置了一个AOP管理事务,现在测试一下aop配置的事务是不是有效,数据设置了一个字段唯一,现在service插入是报错的,现在第一条可以插入,第二条因为唯一就会报错,但... 我配置了一个AOP管理事务,现在测试一下aop配置的事务是不是有效,数据设置了一个字段唯一,现在service插入是报错的,现在第一条可以插入,第二条因为唯一就会报错,但是数据库里还是有一条数据存在的,照理说回滚的话一条数据都没有,mysql数据库,InnoDB引擎!有人告诉我说,配置readOnly=true是可以写的!求证实,比较急,求大神指教........在线等
Spring配置文件
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

<bean id="persistenceExceptionTranslationPostProcessor"
class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />

<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config expose-proxy="true">
<aop:pointcut expression="execution(public * com.qianlima.service..*.*(..))" id="transactionAopConfig"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="transactionAopConfig" />
</aop:config>

Service:
public int addNewMembers(Members m) {
try{
membersDAO.saveNewMembers(m);

membersDAO.saveNewMembers(m);
return 1;
}catch (Exception e) {
e.printStackTrace();
return 0;
}
}
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏50(财富值+成长值)
懂事且健壮灬小喵e
2014-11-20 · TA获得超过756个赞
知道小有建树答主
回答量:575
采纳率:52%
帮助的人:411万
展开全部
既然是spring 在管理事务,spring怎么知道sql操作失败, 你不把异常抛给spring,spring就不会知道成功,失败,service里面不要自己捕获异常

readOnly=true是可以写的,

public int query(){
add();

}
这种能插入?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式