`
fty001
  • 浏览: 15312 次
文章分类
社区版块
存档分类
最新评论

spring 对hibernate 事务管理问题

阅读更多
spring 版本为2.0.7 hibernate版本为3.2.5.ga


spring 配置文件为






   <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
              <property name="jndiName" value="java:comp/env/jdbc/jdbm"/>
          </bean>


<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"  destroy-method="close">
<property name="dataSource" ref="dataSource" />



<property name="mappingLocations">
<list>
<value>classpath*:com/jdapp/db/cc/po/*.hbm.xml</value> 
          

</list>
</property>

<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.chche.provider_class">org.hibernate.cache.EhCacheProvider</prop>

<prop key="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</prop>


</props>
</property>

<property name="eventListeners">
<map>
<entry key="merge">
<bean
class="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener" />
</entry>
</map>
</property>
        </bean>


   <!-- Transaction manager for hibernate  -->
    <bean id="myTransactionManager"  class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
     <property name="sessionFactory"> 
     <ref bean="sessionFactory" /> 
    </property> 
  </bean>
 
 
   <!-- hibernate Dao  -->
   <bean id="testDao" class="com.jdapp.db.cc.dao.TestDao"> 
   <property name="sessionFactory"> 
    <ref bean="sessionFactory" /> 
   </property> 
  </bean> 


  <bean id="testTarget" class="com.jdapp.db.cc.dao.TargetLogic"> 
  <property name="testDao"> 
   <ref local="testDao" /> 
  </property> 
</bean> 

<bean id="userDAOProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="myTransactionManager" />
</property>
<property name="target">
<ref local="testDao" />
</property>
<property name="transactionAttributes">
<props>
<prop key="save">PROPAGATION_REQUIRED,-Exception</prop>

</props>
</property>
</bean>

源代码程为 TestDao.java

package com.jdapp.db.cc.dao;

import java.sql.SQLException;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;




import com.jdapp.db.cc.po.Depinfo;

public class TestDao  extends HibernateDaoSupport implements TargetLogicInc

{


public void save(Depinfo de)


{
System.out.println(this.getHibernateTemplate().find(" from Depinfo").size());

  


try {
this.getHibernateTemplate().save(de);
if(true) {
throw new Exception();

}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}






}




}


按照我的意愿,应该不会向数据库交提, 但结果每次都向数据库提交了.请大家看看我的代码什么地方出了问题?
分享到:
评论
1 楼 fty001 2007-11-30  
我的TargetLogic是没用的

相关推荐

    spring hibernate 事务管理学习笔记(一)

    本文将深入探讨Spring与Hibernate整合时的事务管理,帮助你更好地理解和运用这些技术。 首先,Spring框架是Java企业级应用的基石,它提供了一种依赖注入(Dependency Injection,DI)的方式,使得组件之间的耦合度...

    Spring Hibernate事务实例

    2. Hibernate事务管理:使用`HibernateTransactionManager`结合SessionFactory进行事务控制。 3. AOP(面向切面编程)在事务管理中的应用:`TransactionInterceptor`基于AOP拦截方法调用,处理事务。 4. 配置事务...

    spring hibernate 事务管理学习笔记(二)

    在本篇“Spring Hibernate 事务管理学习笔记(二)”中,我们将深入探讨Spring框架与Hibernate集成时如何实现高效、安全的事务管理。这是一篇关于源码分析和技术工具使用的文章,适合对Java开发和数据库操作有基础...

    spring整合hibernate实现事务处理

    在`Spring_1800_Spring_Hibernate_Transaction_Annotation`这个压缩包文件中,很可能包含了使用注解方式实现Spring整合Hibernate事务处理的相关示例代码和配置文件。通过阅读和理解这些代码,你可以更好地掌握这一...

    spring mvc+hibernate实现事务管理(配置文件版)

    本项目是关于如何使用Spring MVC与Hibernate结合来实现事务管理的实践教程,通过MyEclipse自动生成所需的包和配置文件。这里将详细讲解这一过程,以及涉及到的关键知识点。 首先,Spring MVC作为Spring框架的一部分...

    Spring Hibernate 事务处理 详细说明

    3. **Hibernate事务配置:**在Spring中,需要配置Hibernate SessionFactory,并将其注入到需要进行数据库操作的服务中。同时,通过`PlatformTransactionManager`接口(如HibernateTransactionManager)配置事务管理...

    Spring与Hibernate集成

    通过Spring对Hibernate的管理,我们可以更好地控制事务、实现解耦,同时降低出错的可能性。此外,Spring的AOP支持使得事务管理更加简单,提高了代码的可测试性。在实际项目中,这种集成方式被广泛应用,是Java EE...

    Spring+Hibernate注解事务实例

    本实例将深入探讨如何结合Spring的注解声明式事务管理与Hibernate的数据访问技术,构建一个完整的事务处理系统。 Spring框架以其灵活的依赖注入(DI)和面向切面编程(AOP)闻名,它允许开发者将事务管理从业务逻辑...

    声明式事务控制spring+hibernate集成

    在"声明式事务控制,spring2.5+hibernate3集成源码"中,开发者可以学习如何配置Spring的事务管理器,以及如何在Hibernate的SessionFactory和SessionFactoryBuilder上使用Spring的TransactionProxyFactoryBean来创建...

    Spring+Hibernate事务管理

    Spring将事务管理分成了两类: * 编程式事务管理 * 手动编写代码进行事务管理.(很少使用) * 声明式事务管理: * 基于TransactionProxyFactoryBean的方式.(很少使用) * 需要为每个进行事务管理的类,配置一个...

    spring+hibernate包冲突问题

    - **事务管理问题**:如果事务配置不正确,可能导致事务无法正常提交或回滚,检查Spring的`@Transactional`注解和事务管理配置。 - **数据源冲突**:两个框架可能都试图连接同一数据库,确保只有一个数据源配置...

    在Spring中配置Hibernate事务

    在Spring框架中集成和配置Hibernate事务管理是企业级Java应用中的常见实践,它能提供高效且灵活的事务处理策略。Spring作为一款强大的依赖注入(DI)和面向切面编程(AOP)容器,能够轻松地管理和协调不同数据访问...

    spring hibernate mysql 事务实例

    在Spring与Hibernate的结合下,MySQL的事务控制可以通过设置不同的隔离级别(如READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ、SERIALIZABLE)来优化并发性能和避免数据竞争问题。 在实际开发中,我们还需要...

    spring hibernate,spring jdbc事务管理

    两个项目,一个项目是基于spring jdbc实现的分布式事务,一个是基于spring hibernate的分布式事务,hibernate项目里的applicationContext2.xml是基于mysql和mssql, applicationContext3.xml基于两个mssql, ...

    spring,hibernate整合实现事务管理(MethodInterceptor)

    2. **Hibernate事务管理**: - Hibernate提供了`Session`和`SessionFactory`,它们是与数据库交互的主要对象。`Session`负责单个数据库会话,而`SessionFactory`在整个应用程序生命周期中只创建一次,用于生成`...

    springmvc+spring+hibernate

    3. **配置Spring**:在src/main/resources下创建applicationContext.xml文件,配置Spring的核心容器,包括Bean定义、数据源、事务管理器等。例如,使用DataSource来连接Oracle数据库,使用...

    Hibernate编程式事务与Spring Aop的声明式事务(spring与hibernate集成)

    本主题将深入探讨Hibernate的编程式事务管理和Spring AOP的声明式事务管理,以及两者如何在实际项目中集成使用。 **Hibernate编程式事务管理** Hibernate作为流行的ORM(对象关系映射)框架,提供了对JDBC事务的...

    第二部分spring+hibernate+jta 分布式事务Demo

    本示例“第二部分spring+hibernate+jta 分布式事务Demo”将帮助我们理解如何在这三个框架之间协同工作,实现高效且可靠的事务管理。 首先,让我们深入了解一下这三个组件: 1. **Spring**:这是一个全面的Java应用...

    spring3,hibernate4 配置声明式事务管理(annotation方式)

    总的来说,Spring 3和Hibernate 4结合使用声明式事务管理,使得我们无需在代码中显式调用事务开始、提交和回滚,而是通过注解和配置文件来声明事务的边界和行为。这种方式降低了代码的复杂度,提高了可维护性和可...

Global site tag (gtag.js) - Google Analytics