`
hanfeng450
  • 浏览: 29544 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

用spring事务时hibernate无法抓取对象

阅读更多
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="find*" read-only="true"
rollback-for="my.duds.exception.DudsException" />
<tx:method name="delete*" read-only="false"
rollback-for="my.duds.exception.DudsException" />
<tx:method name="update*" read-only="false"
rollback-for="my.duds.exception.DudsException" />
<tx:method name="save*" read-only="false"
rollback-for="my.duds.exception.DudsException"/>
</tx:attributes>
</tx:advice>

<aop:config proxy-target-class="true">
<aop:advisor
pointcut="execution(* my.duds.services.impl..*.*(..))"
advice-ref="txAdvice" />
</aop:config>


<!-- 注入SessionFactory -->
<bean id="daoImpl"
class="my.duds.dao.impl.DaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
hibernate的配置文件 News.hbm.xml
<hibernate-mapping>
    <class name="my.duds.vo.News" table="News" schema="dbo" catalog="Duds">
        <id name="newsId" type="java.lang.Long">
            <column name="newsID" precision="18" scale="0" />
            <generator class="native" />
        </id>
        <many-to-one name="admin" class="my.duds.vo.Admin" fetch="select">
            <column name="adminID" precision="18" scale="0" />
        </many-to-one>
        <many-to-one name="newsType" class="my.duds.vo.NewsType" fetch="select">
            <column name="newsTypeID" precision="18" scale="0" />
        </many-to-one>
        <property name="newsTitle" type="java.lang.String">
            <column name="newsTitle" length="1000" />
        </property>
        <property name="newsText" type="java.lang.String">
            <column name="newsText" />
        </property>
        <property name="newsPublishDate" type="java.util.Date">
            <column name="newsPublishDate" length="23" />
        </property>
        <property name="newsClickCount" type="java.lang.Integer">
            <column name="newsClickCount" not-null="true" />
        </property>
    </class>
</hibernate-mapping>

当我在jsp页面用 news.newType.newTypeName时,就会抛出session已经关闭的异常,
继而无法获取到newTypeName.
请教一下高手这个是什么问题.有什么办法解决.
我目前只有用left join fetch newType 才能得到newType对象.
除此之外还有其他方法吗?
分享到:
评论
1 楼 bingyunxl 2008-03-30  
会话没有传递到视图层,可以通过对象拷贝或者使用spring自己的一个解决方式,之前的帖子中有,可以找找

相关推荐

    Struts+Hibernate+Spring的基本流程

    Struts+Hibernate+Spring(SSH)整合是Java Web开发中常见的技术栈,它结合了三个强大的框架,分别负责MVC架构、对象关系映射(ORM)以及依赖注入和AOP(面向切面编程)。SSH整合使得开发过程更加高效且易于维护。 ...

    ssh传统开发jar包spring3hibernate3struts2

    这三个框架协同工作,提供了模型-视图-控制器(MVC)架构的支持,事务管理,以及对象关系映射(ORM)功能。 **Struts2** 是一个基于MVC设计模式的Action框架,它继承了Struts1的优点并引入了许多改进,如拦截器...

    hibernate的延迟检索在轻量级J2EE框架中的应用

    - **Spring集成**:Spring可以很好地集成Hibernate,通过Spring的事务管理器,可以更好地控制事务边界,同时利用Spring的AOP特性,可以更加灵活地管理延迟加载的行为。 - **业务逻辑优化**:在业务逻辑层,合理使用...

    网络爬虫,抓取视频信息

    在这个项目中,我们将使用Structs、Hibernate和Spring这三个核心框架构建一个完整的Web应用,以实现视频信息的抓取和处理。 首先,让我们详细了解这些关键技术: 1. **Structs**:这是一个用于构建动态Web应用的...

    SpringMVC+Hibernate+ActiveMQ+spider

    通过Hibernate,开发者可以用Java对象来操作数据库,而无需编写大量的SQL语句。这不仅降低了开发难度,也使得代码更加灵活,能够适应不同的数据库系统。 ActiveMQ则是Apache出品的一个开源消息中间件,它实现了JMS...

    JAVA开源项目合集中文电子书

    Java开源项目合集中文电子书涵盖了目前在Java开发社区中广泛使用的开源框架,包括Spring、MyBatis、Hibernate等。这本电子书不仅介绍了这些框架的基本概念和使用方法,还深入探讨了它们的内部原理。对于希望深入了解...

    Spring Live中文

    - 使用Spring的事务管理特性来确保业务操作的原子性。 **为web层创建Action和Model (DynaActionForm):** - **Action**:负责处理来自用户的请求,并调用相应的业务逻辑。 - **DynaActionForm**:一种特殊的表单类...

    Java开源项目中文文档

    Hibernate是一个对象关系映射(ORM)框架,它提供了一个对象/关系数据库映射工具,使得开发者可以使用对象的方式来操作数据库。Hibernate在JPA(Java Persistence API)的基础上提供了一套更加灵活的ORM实现。文档中...

    spring中文API 3.x 2.x版本

    4. **SpEL(Spring Expression Language)**:一种强大的表达式语言,用于在运行时查询和操作对象图。 5. **WebSocket支持**:添加了对WebSocket协议的支持,增强了实时通信能力。 6. **Async Support**:引入异步...

    SSH框架部分常见面试题.pdf

    SSH框架部分常见面试题.pdf 本文将对 SSH 框架部分常见面试题进行详细的解释...面向过程的编程是编程的基本方式,面向对象的编程是使用对象来编程,面向接口的编程是使用接口来编程,面向切面的编程是使用切面来编程。

    ssh框架工程

    SSH框架工程是一个基于Java技术的Web应用程序,使用了Spring、Hibernate和Struts2这三大主流开源框架进行构建。这个项目是一个小说网站的实现,具备数据抓取功能,可以在部署后立即投入使用。接下来,我们将深入探讨...

    基于Spring4mvc架构的论坛设计(使用maven项目管理工具)

    3. **数据持久化**:使用 ORM(对象关系映射)框架,如 Hibernate,将论坛的数据存储在关系型数据库中。这涉及到实体类的创建、数据访问对象(DAO)的实现以及事务管理。 4. **模板引擎**:如 JSP 或 Thymeleaf,...

    JAVA面试题SSH重点.pdf

    - Hibernate的HQL(Hibernate Query Language)是一种面向对象的查询语言,性能上优于SQL,因为它能利用延迟加载、缓存技术和批量抓取策略进行优化。 - 但若对HQL查询机制理解不足,配置不当,可能会导致性能下降...

    SpringBoot Hibernate 美团商家信息采集管理系统.zip

    Hibernate是一个强大的Java持久化框架,它简化了数据库操作,使得开发者可以使用对象关系映射(ORM)来处理数据库事务。在本项目中,Hibernate被用来与数据库进行交互,管理美团商家信息的存储和查询,减少了手动...

    MavenSSH项目以及mybatis框架使用

    Spring框架则是一个全面的企业级应用框架,它提供了依赖注入、AOP(面向切面编程)、事务管理等核心功能,同时也支持集成其他框架如Hibernate。Hibernate是对象关系映射(ORM)框架,它简化了数据库操作,将Java对象...

    MyEclipse完整工程SSH实现分页

    此外,Spring的事务管理确保了在处理大量数据时的正确性和一致性。 Hibernate作为ORM(对象关系映射)框架,简化了数据库操作。在分页实现中,我们可以利用Hibernate的Query或Criteria API来构造SQL语句,根据用户...

    Java开发工程师简历模板(三十四)

    6. **Hibernate框架**:掌握Hibernate进行对象关系映射,包括一对多、多对多的关系,延迟加载、数据缓存(一级缓存、二级缓存和查询缓存)、抓取策略和HQL(Hibernate查询语言)等,方便数据库操作。 7. **Spring...

Global site tag (gtag.js) - Google Analytics