You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hibernate.cfg.xml中<session-factory>标签配置错误求助

解决Hibernate配置文件的两个XML验证错误

第一个错误:session-factory内容不匹配DTD定义

你的配置里<property name="hibernate.connection.username">root</property>>这一行多了一个多余的>,导致XML结构损坏,触发DTD验证失败。XML解析器会把这个多余的>当作session-factory的子节点,而DTD定义里session-factory只允许property、mapping等指定节点,所以报错。

修复方法:删除username那行末尾多余的>,修正后该行应为:

<property name="hibernate.connection.username">root</property>

第二个错误:DOCTYPE改为PUBLIC时的空格问题

使用PUBLIC声明DTD时,必须遵循<!DOCTYPE 根元素名 PUBLIC "公共标识符" "系统标识符">的格式,公共标识符和系统标识符之间必须有空格。你之前修改时可能没正确添加空格,或者公共标识符格式不对。

Hibernate 3的正确PUBLIC DTD声明应为:

<!DOCTYPE hibernate-configuration PUBLIC 
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

修正后的完整配置代码

<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC 
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- url -->
        <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/</property>
        <!-- username -->
        <property name="hibernate.connection.username">root</property>
        <!-- password -->
        <property name="hibernate.connection.password">Feelslikedope</property>
        <!-- mysql driver -->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    </session-factory>
</hibernate-configuration>

内容的提问来源于stack exchange,提问作者Jahedul Islam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 01:05:20