SSH项目中 hibernate扫描实体类hbm文件慢的问题

本文分析了SSH项目中hbm文件解析缓慢的原因,包括本地DTD文件缺失和hbm文件DOCTYPE配置错误。提供了检查和修复的步骤,避免服务器启动超时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:公司SSH项目在本地启动调试时解析hbm文件很慢甚至解析不出来,导致服务器启动超时!

为啥!!!

原因1:本地解析hbm的DTD文件没了

Hibernate在其二进制包hibernate3.jar的类路径"org/hibernate/"会存放一份DTD声明文件。

  • 在Hibernate运行阶段,它首先会在Java运行时的类路径(classpath)下搜索DTD文件,然后再通过XML中的URL访问DTD定义。如果在开发过程中发现Hibernate在解析"*.hbm.xml"时消耗的时间过长时,就需要检查Hibernate是否通过网络来获取DTD文件,并查找Hibernate运行环境是否包含了DTD的定义文件。

原因2:hbm的DOCTYPE定义配置是老版本的

所有的XML映射文件都需要定义,如下所示的“DOCTYPE”:

<?xml version="1.0" encoding="UTF-8"?> http://hibernate.sourceforge.net/hibernate-mapping- 3.0 .dtd">
  • 有些人可能配置的是老版本2.0的DOCTYPE,地址是不一样的改过来就好了!笔者就是这个原因,因为我用的公司电脑上myeclipse上的hibernateTool自动生成的hbm文件,而这个东西貌似是个老版本的,doctype生成也是老版本的,导致我浪费了好多时间!难道真的是时候弃坑eclipse奔向IntelliJ IDEA了!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值