读取的时候session已经关了,把读取的时候放在session还开着的时候

解决方案 »

  1.   

    给你的web.xml里面加一个Filter
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
      

  2.   

    不行呀,加了org.springframework.orm.hibernate3.support.OpenSessionInViewFilter还是报错
    2006-06-22 15:53:56,859 [org.hibernate.LazyInitializationException]-[ERROR] failed to lazily initialize a collection
     of role: com.jacky.reallb.modal.Productclass.product - no session or session was closed
    org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.jacky.reallb.modal.
    Productclass.product - no session or session was closed
            at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistent
    Collection.java:191)
            at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:183)
            at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:48)
            at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:134)
            at com.jacky.reallb.struts.action.AdminproductclassloadAction.execute(AdminproductclassloadAction.java:70)
            at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
            at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
      

  3.   

    你是不是在
    java.util.Iterator it  =  obj.getProduct().iterator();
    之前,关了session?
    懒加载是在需要的时候才去数据库获取所需字段的。
      

  4.   

    我是个初学者呀,我的项目采用了struts+spring+hibernate,我现在是这样,在JSP上打开productclass时,想把属于productclass的product全部找出来,由于要struts中
    obj=this.getProductclassService().getProductclass(new Long(id));
    //System.out.println("productclass ="+obj.toString());
    /*test one-to-many begin*/
    java.util.Iterator it  =  obj.getProduct().iterator();
    while  (it.hasNext())   
    {
    Product pVO  =  (Product) it.next();
    System.out.print("product name="+pVO.getName());
    System.out.print("product serial="+pVO.getSerial());

    /*test one-to-many end*/怎样达到我这目的呀?
      

  5.   

    再改你的lazily 延迟加载属性
      

  6.   

    c366oem(zoey) ( ) 信誉:97 试过了,就是不行!
      

  7.   

    <set name="product" table="SSH_PRODUCT" cascade="none" lazy="false" inverse="true" order-by="updt desc">
          <key column="ID"/>
          <one-to-many class="com.jacky.reallb.modal.Product"/>
        </set>改成
    <set name="product" table="SSH_PRODUCT" cascade="none" lazy="false" inverse="true" order-by="updt desc">
          <key column="ID"/>
          <index column="ID" type="integer" />
          <one-to-many class="com.jacky.reallb.modal.Product"/>
        </set>
      

  8.   

    lxxstarii(生鱼片) 这里不行,HBM文件报错:
    Severity Description Resource In Folder Location Creation Time Id
    2 The content of element type "set" must match "(meta*,subselect?,cache?,synchronize*,comment?,key,(element|one-to-many|many-to-many|composite-element|many-to-any),loader?,sql-insert?,sql-update?,sql-delete?,sql-delete-all?,filter*)". Productclass.hbm.xml realSSH/WEB-INF/src/com/jacky/reallb/modal line 26 June 24, 2006 2:06:05 PM 5257
      

  9.   

    老大,可能是hbm文件配置错了。
      

  10.   

    我就用struts,没用过hiberate ,也遇到过同样的问题.
    自己写方法实现.
      

  11.   

    phpxer(犯强汉者,虽远必诛!) 不是很清楚呀,我都是照着网上的例子来的,而且查看很多资料,发现都是这样配的!
    但不知为什么我的就不行,而且这样的错在网上找不到相应的办法呀!
      

  12.   

    <set name="product" table="SSH_PRODUCT" cascade="none" lazy="false" inverse="true" order-by="updt desc">
          <key column="ID"/>
          <one-to-many class="com.jacky.reallb.modal.Product"/>
        </set>***************************************************************************
        <many-to-one
            name="productclass"                               
            class="com.jacky.reallb.modal.Productclass"                                  
            column="PRODUCTCLASSID"   
    cascade="none" 
    not-null="true" 
    outer-join="auto" 
    />  请注意,在one_to_many和many_to_one两面进行配置的时候,“<key column="ID"/>”,这个key要指向many方要映射的字段,并且两面的配置都是一样的;
      

  13.   

    <key column="ID"/>column="PRODUCTCLASSID" 你现在两面都不一直;这个id尽量不要用子表的主键,而应该再增加一个字段;
      

  14.   

    session的关闭问题,还有一个是不是配置文件的东西 ,比较赞同
    <set name="product" table="SSH_PRODUCT" cascade="none" lazy="false" inverse="true" order-by="updt desc">
          <key column="ID"/>
          <one-to-many class="com.jacky.reallb.modal.Product"/>
        </set>***************************************************************************
        <many-to-one
            name="productclass"                               
            class="com.jacky.reallb.modal.Productclass"                                  
            column="PRODUCTCLASSID"   
    cascade="none" 
    not-null="true" 
    outer-join="auto" 
    />  
    这样的写法
      

  15.   

    jam19791110(欠妥) ( ) 信誉:100 我现在的配置文件就是你说的这样,可还是不行呀,一样的错!
      

  16.   

    用newxy(新坐标)来解决:
        设表1:table1,表2:table2,有一对多关系,表1的id与表2的table1_id关联;
        在jsp页面上:
        <nbean:formBean name="table1FormBean" sql="select * from table1 where ......"/>
        <logic:notEmpty name="table1FormBean" porperty="_coll">
          <bean:define id="tableId" name="table1FormBean" property="id"/>
        </logic:notEmpty>
        <nbean:formBean name="tableFormBean" sql="select * from table2 where table1_id='${table1Id}'/>
        接作可以一对多显示,可以分页,不写一行java代码。参见:newxy(新坐标)范例:http://www.newxy.net/zh_cn/samples/sample1/demo.jsp
      

  17.   

    把set = new HashSet();去掉
    换成set = null;
      

  18.   

    还是没有人帮我搞定,无奈,要结贴了,有好心请帮我看另一贴吧,该问题的新进展!
    http://community.csdn.net/Expert/topic/4883/4883920.xml?temp=.1669275
      

  19.   

    在有set的那一端有没有实现equal()和hashCode()方法?没有的话用工具去实现一下
      

  20.   

    我也有类似的问题,在web.xml文件中增加了如下代码就OK了:
    <filter>
    <filter-name>hibernateFilter</filter-name>
    <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
    </filter> <filter-mapping>
    <filter-name>hibernateFilter</filter-name>
    <url-pattern>*.do</url-pattern>
    </filter-mapping>
      

  21.   

    你用的hashset,我用的是hashmap , 这里有一个hashmap 存在一个键值对,hashset 是不是也在存在这个问题,我发现你有mapping file 里没有index 这个标签 <map name="reply" inverse="true" cascade="all-delete-orphan" lazy="true" >
                <key column="bbsid"/>
                <index column="id" type="integer"/>
                <one-to-many class="BbsReply"/>
      </map>