`

spring与hibernate 集成

阅读更多
public ExamQuestionEx getInitialed(Integer quesId) {
		ExamQuestionEx q = new ExamQuestionEx();
		String hql = "from ExamQuestionEx where id = ? ";
 		/*List<ExamQuestionEx> list = this.getHibernateTemplate().find(hql,quesId);
		if(list!=null&&list.size()>0){
			q = list.get(0);
		}else{
			return null;
		}*/
		q = (ExamQuestionEx) this.getSession().get(ExamQuestionEx.class, quesId);
		
		if(!Hibernate.isInitialized(q.getAnswers())){
			Hibernate.initialize(q.getAnswers());
		}
		if(!Hibernate.isInitialized(q.getOptions())){
			Hibernate.initialize(q.getOptions());
		}
		return q;
	}

 用

List<ExamQuestionEx> list = this.getHibernateTemplate().find(hql,quesId);
		if(list!=null&&list.size()>0){
			q = list.get(0);
		}else{
			return null;
		}

 

替换

q = (ExamQuestionEx) this.getSession().get(ExamQuestionEx.class, quesId);

 

会报错

org.hibernate.HibernateException: collection is not associated with any session

 

上述方法为dao层方法。

spring的配置为:

    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="save*" propagation="REQUIRED"/>
			<tx:method name="send*" propagation="REQUIRED"/>
			<tx:method name="add*" propagation="REQUIRED"/>
			<tx:method name="create*" propagation="REQUIRED"/>
			<tx:method name="del*" propagation="REQUIRED"/>
			<tx:method name="remove*" propagation="REQUIRED"/>
			<tx:method name="update*" propagation="REQUIRED"/>
			<tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
			<tx:method name="search*" propagation="SUPPORTS" read-only="true"/>
		</tx:attributes>
	</tx:advice>
	<aop:config>
		<aop:pointcut id="affectMethods" expression="execution(* com.buisoft.eit.service.impl.*.*(..))"/>
		<aop:advisor advice-ref="txAdvice" pointcut-ref="affectMethods"/>
	</aop:config>   

 

事务指向到service方法。


 

分享到:
评论

相关推荐

    Spring与Hibernate集成

    **Spring与Hibernate集成详解** 在Java企业级应用开发中,Spring和Hibernate是两个非常重要的框架。Spring是一个全方位的轻量级应用框架,提供了强大的依赖注入、AOP(面向切面编程)以及各种服务管理功能。而...

    Spring与Hibernate集成---声明式事务

    本文将深入探讨如何将Spring与Hibernate进行集成,并重点介绍声明式事务的配置与使用。 Spring框架是一个全面的企业级应用开发框架,它提供依赖注入(DI)和面向切面编程(AOP)等功能,简化了Java应用的复杂性。另...

    spring 与hibernate的集成

    接下来,我们会在`applicationContext.xml`中配置数据源,这是Spring与Hibernate集成的基础。数据源(`dataSource`)通常使用Apache Commons DBCP库,因为它提供了连接池功能,能有效管理数据库连接,提高性能。配置...

    Spring与Hibernate集成授课代码

    本"Spring与Hibernate集成授课代码"资源旨在教授如何将这两个框架整合在一起,实现高效的数据访问和业务逻辑处理。集成Spring和Hibernate能够帮助开发者充分利用两者的优点,比如Spring的事务管理与Hibernate的数据...

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

    **Spring与Hibernate集成** 1. **配置**: 配置Spring的`LocalSessionFactoryBean`,指定Hibernate的相关属性,如配置文件、实体类包等,生成SessionFactory。 2. **依赖注入**: 将SessionFactory注入到需要的地方...

    Struts,Spring与hibernate集成

    【Struts、Spring与Hibernate集成】是Java Web开发中常见的技术组合,用于构建高效、松耦合的MVC应用程序。这三大框架的集成使得开发者能够更好地管理数据访问、业务逻辑和用户界面,提高代码的可维护性和可测试性。...

    Spring与Hibernate集成中的session

    当Spring与Hibernate集成时,Spring通过其`HibernateTemplate`或`HibernateSessionManager`等类来管理和协调Hibernate的`Session`。`Session`是Hibernate的核心概念,它是与数据库交互的主要接口,用于保存、更新和...

    ssh集成jar包,支持spring集成Hibernate,spring集成struts2等

    - Spring与Hibernate集成,通常使用Spring的HibernateTemplate或HibernateDaoSupport,提供事务管理和数据访问抽象,使得代码更简洁,事务控制更方便。 - Spring与Struts2集成,Spring可以作为Struts2的Action的...

    spring和hibernate集成Demo

    **Spring与Hibernate集成** 集成Spring和Hibernate的关键在于如何在Spring中管理Hibernate的SessionFactory和Transaction。这通常通过以下步骤实现: 1. **配置Hibernate**: 创建Hibernate的配置文件(如hibernate...

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

    当Spring与Hibernate集成时,Spring可以负责事务的管理,而Hibernate则专注于数据持久化。 在"声明式事务控制,spring2.5+hibernate3集成源码"中,开发者可以学习如何配置Spring的事务管理器,以及如何在Hibernate...

    spring-hibernate 4个版本

    标题中的“spring-hibernate 4个版本”指的是四个不同阶段的Spring与Hibernate集成框架的版本。Spring是一个广泛使用的Java企业级应用开发框架,而Hibernate是一个流行的持久化框架,用于简化数据库操作。这两个库的...

    Spring、Hibernate集成

    **Spring与Hibernate集成详解** Spring框架以其强大的依赖注入(DI)和面向切面编程(AOP)能力,成为了Java企业级应用开发的事实标准。而Hibernate作为一款优秀的对象关系映射(ORM)工具,极大地简化了数据库操作...

    Struts2_Spring_Hibernate集成

    ### Struts2、Spring与Hibernate集成详解 #### 一、集成背景及意义 在现代Java Web开发中,Struts2、Spring与Hibernate是三个非常重要的框架。Struts2是一个MVC框架,主要用于处理用户请求并返回相应的视图;...

    spring集成hibernate所需jar包

    将Spring与Hibernate集成,可以充分利用两者的优点,实现高效且灵活的后端数据处理。 在"spring集成hibernate所需jar包"中,通常包含以下关键的库文件: 1. **Spring Framework**:这是Spring的核心组件,包括`...

    spring-hibernate3.jar.zip

    《Spring与Hibernate集成详解》 在Java开发领域,Spring框架和Hibernate ORM工具是两个非常重要的组件,它们分别处理了应用程序的依赖注入(DI)和对象关系映射(ORM)。Spring作为一个全面的轻量级框架,提供了...

    struts2 spring hibernate集成

    **Spring与Hibernate的集成** 常见的方式是使用Spring的HibernateTemplate或SessionFactoryBean,它们可以帮助我们管理SessionFactory和Session。Spring可以控制事务边界,实现事务的统一管理,确保数据的一致性。 ...

    Webwork+spring+hibernate集成实例

    在Webwork+Spring+Hibernate集成中,Spring通常作为整体架构的胶水,负责各组件的连接和协调。它可以管理Webwork的Action,通过依赖注入提供所需的Service和DAO。同时,Spring可以配置Hibernate SessionFactory,...

    Spring2 Hibernate3集成

    通过其强大的模块化设计,Spring能够轻松地与其他技术栈进行集成,如本案例中的Hibernate。 - **Hibernate框架**:作为一个开放源码的对象关系映射(ORM)解决方案,Hibernate提供了从Java类到数据库表的映射,以及...

Global site tag (gtag.js) - Google Analytics