spring怎么事务没有起作用 谢谢

yu_shi_bin 2007-11-26 06:11:59
<beans>
<!-- Hibernate SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mappingResources">
<list>
<value>com/foxt/appcontrol/model/SoDAudit.hbm.xml</value>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.current_session_context_class">thread</prop>
<prop key="hibernate.jdbc.batch_size">20</prop> -->
</props>
</property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="AuditDao" class="com.foxt.appcontrol.persistence.impl.hibernate.AuditDaoImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>

<bean id="txProxyTemplate" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="transactionManager"/>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>


<bean id="realSoDAuditService" parent="txProxyTemplate">
<property name="target">
<bean class="com.foxt.appcontrol.application.impl.sodaudit.SoDAuditServiceImpl">
<property name="auditDao" ref="AuditDao"/>
</property>
</bean>

比如auditdao.deleteAudit()方法里面有deleteA(); deleteB();
这时候A被delete拉 b delete出错啦 但是事务却没有回滚, a实实在在的被delete拉
...全文
162 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
seablue_xj 2007-12-01
  • 打赏
  • 举报
回复
<bean id="statisticsService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref local="transactionManager"/>
</property>
<property name="target">
<ref bean="statisticsTarget"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="saveStatistics">PROPAGATION_MANDATORY</prop>
<prop key="monthAcount">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>

你把它改成这样的形式,注入一个target,指向的是service层的实现,看看
yu_shi_bin 2007-11-30
  • 打赏
  • 举报
回复
谢谢楼上各位的回复
public class BaseDaoImpl extends HibernateDaoSupport implements BaseDao public void removeObject(Class clazz, Serializable id)
throws AppControlPersistenceException {
public void removeObject(Class clazz, Serializable id)
throws AppControlPersistenceException {

getHibernateTemplate().delete(getObject(clazz, id));
}

realSoDAuditService

public void deleteRisks(UserCredentials credentials, List riskIds)
throws AppControlException {

if (riskIds == null)
return;
for (int i = 0; i < riskIds.size(); i++) {
riskDao.removeObject(SoDRisk.class, (Long) riskIds.get(i));
}

已经改为
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
</props>
</property>

还是不行


}
rickhunterchen 2007-11-28
  • 打赏
  • 举报
回复
估计你在事务层或者DAO层try...catch了。

所以spring认为你自己管理异常。
danceflash 2007-11-28
  • 打赏
  • 举报
回复
<prop key="*"> PROPAGATION_REQUIRED </prop>

这里好像只会对RuntimeException进行捕捉回滚
你的delete方法抛出的异常是受检的还是运行期的?
yu_shi_bin 2007-11-27
  • 打赏
  • 举报
回复
up
gongyali2005 2007-11-27
  • 打赏
  • 举报
回复
<bean id="txProxyTemplate" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="transactionManager"/>
<property name="transactionAttributes">
<props>
<prop key="*"> PROPAGATION_REQUIRED </prop>
</props>
</property>
</bean>
把abstract="true"改成FALSE,加入TARGET=目标类.
【父亲生病了,求祈福,好人一生平安,谢谢】   丁振凡编著的《Spring3.x编程技术与应用》按 循序渐进的原则对Spring3.x的主要知识及应用体系 进行了较为系统的介绍,回答了应用开发者 最为关心的一些话题,目的是帮助读者快速理解和运用相关知识。 《Spring3.x编程技术与应用》紧扣新版Spring的知识内容,结合实际应用进行讲解,书中的应用样 例具有很大的实用性。全书分3篇共21章,具体内容包括:Spring环境的安装与使用、JSP与JSTL简介、 Spring基础概念与工具、用SpringJdbcTemplate访问数据库、使用Mayen工程、Spring MVC编程、基于 MVC的资源共享网站设计、Spring的AOP编程、Spring的安全访问控制、Spring事务管理、 Spring的任务执行与调度、Spring Web应用的国际化支持、AJAX和Spring结合的访问模式、利用Spring发 送电子邮件、Spring JMS消息应用编程、教学资源全文检索设计、Java应用的报表打印、网络考试系统设 计、Spring应用的云部署与编程、SpringIntegration应用简介、基于MVC的文档网络存储服务 设计。 本书是作者近年来利用Spring进行应用开发的经验总结。适合作为软件开发人员进行项目开发时的参 考资料,同时也可作为高校本科生和研究生开设 “JavaWeb编程技术”或“Spring开发技术与应用” 课程的教 材或参考书。

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧