zoukankan      html  css  js  c++  java
  • SSH之懒加载异常解决方案

    1、设置成即时加载

    2、查询语句使用join fetch

    from Coupon coupon  left join fetch coupon.users  where coupon.id=:id  

    coupon的List<users> users属性是懒加载,但是查询结果需要users的内容,则使用 left join fetch

    3、使用OpenSessionInViewFilter过滤器

    web.xml

        <!-- 以下是Spring的OpenSessionInView实现 ,唯一要求:放在struts2的过滤器前面-->
        <filter>
            <filter-name>openSessionInViewFilter</filter-name>
            <filter-class>
                org.springframework.orm.hibernate4.support.OpenSessionInViewFilter
            </filter-class>
            <!-- 如果是singleSession=false的话, 就不会在每次的整个request的过程中使用同一个hibernate session, 
                而是每个数据访问都会产生各自的seesion,等于没有OpenSessionInView. -->
            <init-param>
                <param-name>singleSession</param-name>
                <param-value>true</param-value>
            </init-param>
            <!-- 指定org.springframework.orm.hibernate3.LocalSessionFactoryBean在spring配置文件中的名称,默认值为sessionFactory。 
                如果LocalSessionFactoryBean在spring中的名称不是sessionFactory,该参数一定要指定,否则会出现找不到sessionFactory的例外。所以默认可以不写 -->
            <init-param>
                <param-name>sessionFactoryBean</param-name>
                <param-value>sessionFactory</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>openSessionInViewFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        <!-- openSessionInViewFilter在struts2前面 -->
        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>

    Done!

  • 相关阅读:
    码农提高工作效率 (转)
    Python快速教程 尾声
    C#基础——谈谈.NET异步编程的演变史
    [C#]動態叫用Web Service
    零极限 核心中的核心和详解
    项目经理应该把30%的时间用在编程上
    高效能程序员的七个习惯
    我们如何进行代码审查
    工作经常使用的SQL整理,实战篇(二)
    C# Socket网络编程精华篇 (转)
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3913210.html
Copyright © 2011-2022 走看看