在我回到公司的第一周周五,远程连接客户服务器,查找我们系统无法正常工作的原因。
在查看日志时,发现服务器端日志输出信息有很多重复着Hibernate某个类某行代码的异常。
Hibernate官网文章链接:
https://forum.hibernate.org/viewtopic.php?p=2385576
https://hibernate.onjira.com/browse/HHH-2166
查看以上链接的文章之后,才明白:
在Hibernate现有的依赖JAR包中,该类的实现方式下:当检索where column in (...)语句类似的操作时,如果In语句中包含的项超过了1W项,则:对应检索方法实现会加大递归次数,最终导致了堆栈溢出!
在Hibernate官网以上链接中提供了解决方案,优化了这个循环递归的类,当我将新的改进类放入九厂项目主工程下并编译之后,将其覆盖掉hibernate3.jar中对应的.class文件,重新运行项目,发现一切都解决了!
当时请教了Deng老大,他说:如果以上方式无法解决,我们就在对应的出现错误的方法位置,获取到connection对象,然后纯JDBC方式操作这些in
子项很多的条件检索记录项。(有些疑问:由于这个Hibernate操作类多处[几乎所有地方]都用到了,那么我岂不是要重写所有的方法吗?)
还好使用hibernate官方提供的改进类之后,系统可以正常运行起来了!
至于放入hibernate3.jar的方法,首先在主工程中创建一个与之同级的package目录,然后重新编译项目之后,就出现一个该NodeTraverser的Class字节码文件了,此时将hibernate3.jar用解压缩工具打开,然后替换相应位置下的该字节码文件即可!【简略位置如下图】
分享到:
相关推荐
Hibernate源代码 Hibernate源代码 Hibernate源代码 Hibernate源代码
hibernate入门代码,附有测试代码
Hibernate源代码分析(一):设计属于我的SessionFactory和ConnectionProvider
最简单的Hibernate工程代码,可通过hibernate.cfg.xml或者hibernate.properties加载数据源,此工程下载后可直接导入eclipse运行
Struts、Hibernate入门代码
Hibernate01_源代码及重要说明.rar
hibernate源代码包hibernate源代码包hibernate源代码包hibernate源代码包hibernate源代码包
hibernate代码自动生成
Hibernate源代码分析(一):设计属于我的SessionFactory和ConnectionProvider.doc
Hibernate Quickly 源代码
Hibernate实例代码,一个用Hibernate实例代码在Eclipse中写的小程序,仅供初学者参考
JavaEE源代码 hibernate3JavaEE源代码 hibernate3JavaEE源代码 hibernate3JavaEE源代码 hibernate3JavaEE源代码 hibernate3JavaEE源代码 hibernate3JavaEE源代码 hibernate3JavaEE源代码 hibernate3JavaEE源代码 ...
Hibernate 源代码(非常好)有许多相关的系统在里面。很好.
hibernate的源代码,直接从官方网站上下载下来的
hibernate分页代码,直接能在myeclipse上运行的好东西
代码中包含了Hibernate的使用的基本例子
示例中包括:基于底层的JDBC对数据库的操作和利用hibernate对数据库操作的对比,其中hibernate的实体关系映射包括(一对多,多对多)还有与Spring的整合例子。
hibernate 教程 源代码, 包括关系映射,hql和帮助文档
hibernate-3.2源代码 以及所需jar包 和帮助文档
hibernate查询代码,以及hibernate.cfg.xml等的配置,四中查询