Hibernate3运行抛出InvalidMappingException无效映射错误求助
错误根因与修复方案
你的报错核心是Employee.hbm.xml映射文件解析失败,具体有3个需要修改的点:
- DTD地址与版本不匹配
你使用的Hibernate3.2.6属于较早的版本,映射文件中引用的http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd是Hibernate后续版本更新的DTD地址,当前版本无法正确加载。
修复方式:将Employee.hbm.xml的DOCTYPE声明替换为和配置文件一致的旧版地址即可:
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
如果是无外网的离线环境,也可以直接将DTD路径指向Hibernate核心包中自带的本地DTD文件,避免联网校验失败。
- 映射类未写全限定名
你的Employee类属于hibtest包,映射文件<class>标签的name属性仅填写了Employee,Hibernate无法在默认路径下找到对应类。
修复方式:将<class>标签修改为填写全限定类名:
<class name="hibtest.Employee" table="EMPLOYEE">
- 配置文件冗余配置
hibernate.cfg.xml中重复声明了两次dialect属性,虽然不直接影响运行,但属于无效冗余配置,删除其中任意一次的声明即可。
内容的提问来源于stack exchange,提问作者jaykio77
相关产品推荐
相关产品推荐

