Hibernate3错误:could not initialize proxy – no Session的解决办法

前段时间在项目中出现以下错误:

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)


网上查了很多文章,说是因为hibernate的延迟加载问题。解决方法是:

<many -to-one>   和 <set> 中设置 lazy="false"
</set></many>

但操作中发现,这样会导致性能的大幅度下降,由于项目的关联的表格比较多,造成没刷新一次要执行非常多的SQL语句。

由于项目采用的ssh框架,因此使用spring的OpenSessionInViewFilter过滤器,重新测试下,性能提升很多。如果采用ssh,出现以上问题,可以加上这个过滤器。

	<filter>
	</filter><filter -name>openSessionInViewFilter</filter>
		<filter -class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter>	

	<filter -mapping>
		</filter><filter -name>openSessionInViewFilter</filter>
		<url -pattern>/*</url>

随机日志

  • 使用PHPRpc实现Java和PHP通信
    PHPRPC是一款不错的是轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。官方网址为http://www.phprpc.org/zh_CN/ 本文以Java作为服务器端,PHP作为客户端来作为演示。 1、先书写Java服务器端,书写一个接口。如...
  • jqGrid基础学习:10jqGrid的多字段查询
    多字段查询就是高级查询,在jqGrid中,高级查询的麻烦在于同后台的交互。 [caption id="attachment_379" align="alignnone" width="718" caption="jqGrid多字段查询"][/caption] 启用多条件查询的方法,是加上.searchGrid({multipleSearch:true}); 即可。 ...
  • Windows 下环境迅速搭建Php+Apache+mysql
    本文发表于计世网服务器论坛。http://serverbbs.ccw.com.cn/viewthread.php?tid=15141&highlight=%2Byeying43 php在windows条件下要进行一系列配置,操作比较麻烦,而且容易出错。现在推荐一款软件,不仅可以轻松搭建php环境,而其可以对php环境进行很好配置和管理。 软件名字:VertrigoServ 最新版...
  • Json下的Positioned Update not supported解决方法
    今天使用json输出的时候报了这个错误,原因找了一下,发现使用hibernate自动生成的一些类会出现这个情况,主要是因为hibernate使用了延迟加载所造成的缘故。 因为我的系统前台使用的jquery-easeyui的dataGrid表格,所以,只能重新建一个类来进行。代码如下 package com.mrzeng.action; import java.util.Array...
  • 磁盘碎片整理提示要运行Chkdsk /f的处理方法
    硬盘处理要进行碎片整理时候,如果出现一个写“磁盘碎片整理提示要运行Chkdsk /f”的对话框,那么处理方面如下: 1、打开运行,输入Chkdsk /f ,在命令行中填写n,回车 2、重启电脑。...

PO一下