当前位置:编程学习 > JAVA >>

Hibernate中加载hibernate.cfg.xml和mapping resource时速度奇慢

如题
(顶也给一分) --------------------编程问答-------------------- 最近因为项目数据量增加,项目显得非常慢,有时候甚至出现内存溢出。仔细查找原因,原来是使用DWR以后使hibernate的一次加载失效。在官方网站查询相关问题,即配置:

<convert match="your.bean" converter="hibernate3"></convert>

这样效率大大提高,并且错误也解决,但是新的问题来了,此时加载不了代理类,即hibernate的关联对象,又导致了新的一批问题出现。

 

又继续探索官网,在官网有一段话大体意思是:如果只是用hibernate的话,那么你在使用的时候必须保证session没有被关闭,如果使用的spring的话,在web.xml配置OpenSessionInViewFilter,即:

<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>/*</url-pattern>
 </filter-mapping>

 

配置了以后,问题还是未解决,仔细想想,我前台调用了代理类,这些只是JS代码,服务端感受不到。

想来想去,最后只有将hibernate多对一的layz="false"方解决此问题。

在此建议:一对多一定要使用延迟加载策略:layz="true",否则当数据量大的时候,dwr会内存溢出,

我的项目就是当时没有设置这个,结果多的那边一下子加载5万条数据出错。

 

另外补充一点:dwr2.0:

<convert match="your.bean.*" converter="hibernate3"></convert>

支持bean下面所有目录

dwr3.0:

<convert match="your.bean.*" converter="hibernate3"></convert>

<convert match="your.bean.**" converter="hibernate3"></convert>

一个支持下一次目录,一个支持下面所有目录

--------------------编程问答-------------------- 这确实很郁闷,你用懒加载试试 --------------------编程问答-------------------- 那我划个水,帮忙顶起吧~~! --------------------编程问答-------------------- 开始会慢些,第一次要访问数据库,创建连接,
后面应该就没问题了 --------------------编程问答-------------------- 建议用赖加载! --------------------编程问答--------------------
引用楼主  的回复:
如题


不会是因为Hibernate装载配置文件的时候,去尝试下载 XSD 或者 DTD 去了吧? --------------------编程问答--------------------
引用 6 楼  的回复:
引用楼主  的回复:
如题


不会是因为Hibernate装载配置文件的时候,去尝试下载 XSD 或者 DTD 去了吧?


感觉这个比较靠谱 --------------------编程问答-------------------- 用懒加载吧 --------------------编程问答-------------------- --------------------编程问答-------------------- 看一下 XSD 或者 DTD 是不是存在 --------------------编程问答-------------------- 或者不是慢,就是根本加载不了。
去官网更换相应最新包再试试。 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 楼主解决没有,记得分享解决方法...期待中! --------------------编程问答-------------------- hibernate引用问题,,,老的项目引用的是2.0的规则,,,后来我添加的新映射引用的是3.0的。。。
所以奇慢。。。后来都改成2以后 。可以了 --------------------编程问答-------------------- 嗯知道了。。。。 --------------------编程问答-------------------- lazy
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,