3

长期以来,我一直在努力解决此错误,请帮助我。

我正进入(状态ERROR: HHH000196: Error parsing XML (2) : Element type "hibernate-mapping" must be declared.

请帮我解决这个问题:

我的 pom.xml 看起来像这样:

<dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.0.0.GA</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.2.1.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.2.1.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>4.3.1.Final</version>
        </dependency>

我的 cfg.xml 标头:

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

我的 hbm.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-mapping>
    <class name="com.kivar.lumina.server.segment.Segment" table="segments">
        <id column="ID" name="id" type="java.lang.Long">
        </id>
    </class>
</hibernate-mapping>
4

2 回答 2

4

DTD 的位置 URL 错误。在 hbm.xml中,应该使用hibernate- mapping -3.0.dtd 而不是 hibernate- configuration -3.0.dtd,如下所示:

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
于 2013-05-09T18:02:20.353 回答
1

接受答案中的解决方案是安全的。当然,应该有 DTD 用于映射而不是配置,但 URL 是

http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd

从休眠 3.6 开始。见https://developer.jboss.org/wiki/HibernateCoreMigrationGuide36

于 2015-10-01T22:36:08.587 回答