admin
Hibernate: select users0_.users_Id as users1_3_, users0_.users_Dept as users2_3_, users0_.users_State as users3_3_, users0_.users_Accounts as users4_3_, users0_.users_Name as users5_3_, users0_.users_Pwd as users6_3_, users0_.users_Num as users7_3_ from hdErp.dbo.users users0_ where 1=1 and (users0_.users_Accounts like ?) and (users0_.users_Pwd like ?)
admin 20$2C$B9$62$AC$59$07$5B$96$4B$07$15$2D$23$4B$70
部门:1
admin YYYY
2009-10-12 9:49:29 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:57)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:150)
at com.whhd.entity.users.Dept$$EnhancerByCGLIB$$3a571986.getDeptClass(<generated>)
at com.whhd.struts.action.MainAction.bodyLeft(MainAction.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.whhd.util.EncodingFilter.doFilter(EncodingFilter.java:23)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)我在session中 获得一个用户的信息,Users为用户表,其中dept为外键 对应部门表 外键ID可以获取到,但是外键的值 获取不到 报could not initialize proxy - no Session错误,我的实体.hbm.xml里 把set 里有改lazy="false" 还是这个问题,我在网上查了下
<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>
在配置文件中加了这些,后来 又重写了spring的OpenSessionInViewFilte方法
将private FlushMode flushMode = FlushMode.NEVER;改成private FlushMode flushMode = FlushMode.AUTO;
结果还是报一样的错误
请大家帮帮忙...

解决方案 »

  1.   

    出这个错误好像不是懒加载和过滤的事。你的.hbm.xml和配置文件及数据库的字段都对应了么?不多不少?
    你只给个错误,这个错误有很多种情况都能引起来的还真不好说到底哪里出错了
      

  2.   

    刚才看错了,出现这个错误一个是没有打开Session,2是lazy问题  你在*.hbm.xml中对应的class标签中加上 lazy="false" 看行不行
      

  3.   

    Session关闭后使用了延迟加载的对象 OpenSessionInViewFilter 解决不了这个问题 要么取消延迟加载 要么就在关闭SESSION之前使用这个对象
      

  4.   

       你是访问成jsp了哦 ?  如果是的话 那你的那个filter 要加一个 mapping
      

  5.   

    用OpenSessionInViewFilter
    或者把dept 的类级别lazy设置成false
      

  6.   

    你延迟加载了这个属性,但是取的时候,session 已经关闭了解决方法是,用 Hibernate.initaltion(你关联的需要延迟的属性);取你要加载的属性就可以了。
      

  7.   

    三种方法:
    1、取消懒加载
    2、opensessioninview
    3、用迫切左外连
      

  8.   

    Users为用户表,其中dept为外键,它是一个属性,把dept 的类级别lazy设置成false
      

  9.   

    =。= 你们都没看完我的帖子么...
    lazy我早设置成false
    OpenSessionInViewFilte又重写了
    不过 这个问题我自己解决了 呵呵 散分
      

  10.   

    could not initialize proxy - no Session
    解决方法:<many-to-one>  & <set> 中设置 lazy="false"还有看你滴ENTITY的路径是不是对到的..
    还有看你的配置文件..
    都要检查检查
      

  11.   

    楼主的主贴里面:

    我的实体.hbm.xml里 把set 里有改lazy="false" 还是这个问题,我在网上查了下”
    最后的帖里面“解决方法:<many-to-one> & <set> 中设置 lazy="false"”你自己说的解决方式 是你试了不管用的?!!!
    请楼主解释一下这个问题!