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;
}
} 展开
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(财富值+成长值)
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询