SSH项目,failed to lazily initialize a collection of role
错误:
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相关推荐
- hibernate 延迟加载的错误 failed to lazily initialize a collection of role
这个问题一般出现在一对多的情况下,解决的方法有两种 1.设置lazy=false 如果是用annotation,则配置如下 @OneToMany( targetEntity = CourseAu ...
- 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 ...
- 解决: failed to lazily initialize a collection of role: XXX, could not initialize proxy - no Session
一般出现在Hibernate框架下,实体类中关联着其他实体类(一对多等关系),并且关联对象还是其懒加载fetch = FetchType.LAZY @OneToMany(mappedBy = &quo ...
- org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role:no sessi
<set name="invigilators" table="examInvigilator " cascade="all" laz ...
- org.apache.struts2.json.JSONException: org.hibernate.LazyInitializationException: failed to lazily i
数据转换成json数据失败,封装的实体类中有集合字段,在get方法上面加@JSON(serialize=false)注解 @JSON(serialize=false) public Set<Su ...
- 部署k8s时ssh端口不是22导致创建ssh session failed问题
项目场景:部署k8s时ssh端口不是22导致创建ssh session failed问题 (SHH端口代理) 项目场景:部署k8s,日志显示错误不能创建ssh连接错误,由于主机服务器配置的ssh端口为 ...
- 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 ...
- 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 ...
- ssh html项目,SSH项目-学生管理系统
SSH项目-学生管理系统 资源下载此资源下载价格为3D币,请先登录 资源文件列表 StudentManagent/.classpath , 979 StudentManagent/.myhiberna ...
- Maven的学习资料收集--(九) 构建SSH项目以及专栏maven
在这里整合一下,使用Maven构建一个SSH项目 1.新建一个Web项目 可以参照前面的博客 2.添加依赖,修改pom.xml [html] view plaincopy <project xm ...
最新文章
- 关于Eclipse平台的使用和开发第一个SWT程序
- Eval和Bind的区别
- 脑残式网络编程入门(三):HTTP协议必知必会的一些知识
- NSIS 的 Modern UI 教程(二)
- Treiber Stack简单分析
- 1037C. Equalize
- 使用Qunit对JavaScript进行单元测试
- 通过静态发现方式部署 Etcd 集群
- 依赖类型语言Idris发布1.0版本
- C语言字符串和数字转换函数大全
- JSP计算机社团管理系统源码,大学生社团管理系统JSP
- 关于小波分解的滤波器理解
- 白话windows之四 异常处理机制(VEH、SEH、TopLevelEH...)
- android 入门记录
- 基于javacv(推流),nginx(流媒体服务器),VCL(播放器)搭建直播视频
- 4PAM的误码率仿真
- 2019,你不知道的大厂薪酬
- 高中计算机学考试卷,北京市西城区 2018 年普通高中学业水平考试 信息技术试卷及答案 (PDF版)...
- HR必备:29套职业测评和性格测试题库
- PWA(Progressive Web App)初探总结