错误:

org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.zua.bos.domain.Staff.decidedzones, could not initialize proxy - no Sessionat org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:567)at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:205)at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:546)at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:133)at org.hibernate.collection.internal.PersistentSet.toString(PersistentSet.java:299)at java.lang.String.valueOf(String.java:2854)at java.lang.StringBuilder.append(StringBuilder.java:128)at com.zua.bos.domain.Staff.toString(Staff.java:116)at java.lang.String.valueOf(String.java:2854)at java.lang.StringBuilder.append(StringBuilder.java:128)at java.util.AbstractCollection.toString(AbstractCollection.java:450)at java.lang.String.valueOf(String.java:2854)at java.lang.StringBuilder.append(StringBuilder.java:128)at com.zua.bos.utils.PageBean.toString(PageBean.java:54)at com.zua.bos.web.action.StaffAction.pageQuery(StaffAction.java:67)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:601)at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:870)at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1293)at ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:68)at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethodWithDebugInfo(XWorkMethodAccessor.java:117)at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethod(XWorkMethodAccessor.java:108)at ognl.OgnlRuntime.callMethod(OgnlRuntime.java:1369)at ognl.ASTMethod.getValueBody(ASTMethod.java:90)at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)at ognl.SimpleNode.getValue(SimpleNode.java:258)at ognl.Ognl.getValue(Ognl.java:494)at ognl.Ognl.getValue(Ognl.java:458)at com.opensymphony.xwork2.ognl.OgnlUtil$2.execute(OgnlUtil.java:309)at com.opensymphony.xwork2.ognl.OgnlUtil.compileAndExecute(OgnlUtil.java:340)at com.opensymphony.xwork2.ognl.OgnlUtil.getValue(OgnlUtil.java:307)at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:423)at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:287)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:250)at org.apache.struts2.interceptor.DeprecationInterceptor.intercept(DeprecationInterceptor.java:41)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167)at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:76)at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229)at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229)at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at org.apache.struts2.interceptor.DateTextFieldInterceptor.intercept(DateTextFieldInterceptor.java:125)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:253)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:139)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at com.zua.bos.web.interceptor.LoginInterceptor.doIntercept(LoginInterceptor.java:35)at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:564)at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:81)at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:722)

今天在做ssh项目时遇到这个错误,说的很清晰,是因为hibernate懒加载的问题

原因:

是因为我的实体类里面维护了一个List集合对象,是一对多的关系,代码如下:

public class PageBean {/*** 查询传到后台的数据参数*/private int curPage;//当前页private int pageSize;//每页显示的记录数private DetachedCriteria detachedCriteria;//离线查询条件/*** 查询后返回给前台的数据*/private int total;//总记录数private List rows;//当前页需要展示的数据集合//省略getter,setter}

这样的话,获取PageBean对象时,PageBean对象关联List集合对象,FetchType默认是懒加载的,当获取list对象时,session已经关闭;

但是如果PageBean维护的知识一个简单的Pojo,FetchType默认是立即加载。

解决方法:

在web.xml中 配置过滤器,延长Sesseion的生命周期

  <!-- 配置过滤器,解决hibernate延迟加载问题 --><filter><filter-name>openSessionInView</filter-name><filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class></filter><filter-mapping><filter-name>openSessionInView</filter-name><url-pattern>/*</url-pattern></filter-mapping>

注意:此过滤器要放在struts2的过滤器的前面,过滤器是有执行顺序的!

SSH项目,failed to lazily initialize a collection of role相关推荐

  1. hibernate 延迟加载的错误 failed to lazily initialize a collection of role

    这个问题一般出现在一对多的情况下,解决的方法有两种 1.设置lazy=false 如果是用annotation,则配置如下 @OneToMany(    targetEntity = CourseAu ...

  2. org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.ljw

    org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.ljw ...

  3. 解决: failed to lazily initialize a collection of role: XXX, could not initialize proxy - no Session

    一般出现在Hibernate框架下,实体类中关联着其他实体类(一对多等关系),并且关联对象还是其懒加载fetch = FetchType.LAZY @OneToMany(mappedBy = &quo ...

  4. org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role:no sessi

    <set name="invigilators" table="examInvigilator " cascade="all" laz ...

  5. org.apache.struts2.json.JSONException: org.hibernate.LazyInitializationException: failed to lazily i

    数据转换成json数据失败,封装的实体类中有集合字段,在get方法上面加@JSON(serialize=false)注解 @JSON(serialize=false) public Set<Su ...

  6. 部署k8s时ssh端口不是22导致创建ssh session failed问题

    项目场景:部署k8s时ssh端口不是22导致创建ssh session failed问题 (SHH端口代理) 项目场景:部署k8s,日志显示错误不能创建ssh连接错误,由于主机服务器配置的ssh端口为 ...

  7. ssh错误 server not ready for puppeth err=“ssh: handshake failed: ssh: unable to authenticate... 解决方法

    原因:密码错误 问题分析 在编译go-ethereum之后使用puppeth创建私链后,在绑定用户的时候,会出现以下错误: What's the login password for root at ...

  8. Ubuntu中重启ssh服务时提示:Job for ssh.service failed because the control process exited with error code. See

    场景 在Ubuntu中重启ssh服务时提示: Job for ssh.service failed because the control process exited with error code ...

  9. ssh html项目,SSH项目-学生管理系统

    SSH项目-学生管理系统 资源下载此资源下载价格为3D币,请先登录 资源文件列表 StudentManagent/.classpath , 979 StudentManagent/.myhiberna ...

  10. Maven的学习资料收集--(九) 构建SSH项目以及专栏maven

    在这里整合一下,使用Maven构建一个SSH项目 1.新建一个Web项目 可以参照前面的博客 2.添加依赖,修改pom.xml [html] view plaincopy <project xm ...

最新文章

  1. 关于Eclipse平台的使用和开发第一个SWT程序
  2. Eval和Bind的区别
  3. 脑残式网络编程入门(三):HTTP协议必知必会的一些知识
  4. NSIS 的 Modern UI 教程(二)
  5. Treiber Stack简单分析
  6. 1037C. Equalize
  7. 使用Qunit对JavaScript进行单元测试
  8. 通过静态发现方式部署 Etcd 集群
  9. 依赖类型语言Idris发布1.0版本
  10. C语言字符串和数字转换函数大全
  11. JSP计算机社团管理系统源码,大学生社团管理系统JSP
  12. 关于小波分解的滤波器理解
  13. 白话windows之四 异常处理机制(VEH、SEH、TopLevelEH...)
  14. android 入门记录
  15. 基于javacv(推流),nginx(流媒体服务器),VCL(播放器)搭建直播视频
  16. 4PAM的误码率仿真
  17. 2019,你不知道的大厂薪酬
  18. 高中计算机学考试卷,北京市西城区 2018 年普通高中学业水平考试 信息技术试卷及答案 (PDF版)...
  19. HR必备:29套职业测评和性格测试题库
  20. PWA(Progressive Web App)初探总结

热门文章

  1. 机器学习sklearn----通过轮廓系数确定适合的n_clusters
  2. 历史大盘跌停记录,2016大盘跌停原因
  3. 嫡权法赋权法_客观赋权法的使用
  4. PCB设计之安规规范
  5. “我,从油漆工开始的80后,曾经靠副业的收入买车买房”
  6. Redis【有与无】【Lettuce】L4.Redis Sentinel
  7. 住得越高越安静? 中间楼层噪音最大
  8. JeecgBoot新增一个module
  9. 一个文字类RPG游戏框架(走过路过别错过)C++
  10. 机器学习入门——简单线性回归