Hibernate配置错误(找不到元素'hibernate-configuration'的声明)

时间:2012-03-27 23:15:41

标签: java hibernate configuration

我正在尝试使用hibernate建立与数据库的简单连接。这是我的配置文件:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
    "//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
    <!-- Database connection settings -->
<property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="connection.url">jdbc:hsqldb:hsql://localhost</property>
<property name="connection.username">user</property>
<property name="connection.password">pass</property>

<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>

<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.HSQLDialect</property>

<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>

<!-- Disable the second-level cache  -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>

<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">update</property>
<mapping resource="com/mycomp/pro/model/elem/elem.hbm.xml"/>
</session-factory>
</hibernate-configuration>

我收到以下错误:

Exception in thread "main" org.hibernate.internal.util.config.ConfigurationException: Unable to perform unmarshalling at line number 6 and column 26 in RESOURCE hibernate.cfg.xml. Message: cvc-elt.1: Cannot find the declaration of element 'hibernate-configuration'.
...

似乎有点不合逻辑。因为我将'hibernate-configuration'作为hibernate.cfg.xml文件中的根元素。

我正在使用Hibernate 4.1.1(刚才提到,因为我已经得到一些提示,新的hibernate可能会有一些问题)

希望有人可以提供帮助,因为我是Hibernate的新手,现在我也没有得到谷歌的任何重大帮助。

4 个答案:

答案 0 :(得分:2)

使用以下命令构建会话工厂 -

new Configuration().configure().buildSessionFactory();

至于Hibernate.cfg,你可以试试下面的标题。

<hibernate-configuration 
 xmlns="http://www.hibernate.org/xsd/hibernate-configuration" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.hibernate.org/xsd/hibernate-configuration 
 https://github.com/hibernate/hibernate-orm/raw/master/hibernate-core/src/main/resources/org/hibernate/hibernate-configuration-4.0.xsd">

目前Hibernate 4.1似乎遇到了错误(不确定稳定性)。我在邮件列表中找到了解决方案,所以也要检查一下。希望这会有所帮助。

  

http://www.mail-archive.com/hibernate-dev@lists.jboss.org/msg06937.html

答案 1 :(得分:0)

将会话工厂创建为新的AnnotationConfiguration()。配置 ()。 buildSessionFactory(); 希望它能帮助你建立联系......

答案 2 :(得分:0)

试试这段代码。

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); 
    Session session = sessionFactory.openSession();
    session.beginTransaction();

将标头添加到XML文件中,如

<?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>
        --------
    <hibernate-configuration>

答案 3 :(得分:0)

D:\hibernate-release-5.1.17.Final\project folder >>>>>>>搜索hibernate.cfg.xml中复制粘贴休眠配置xml文件 并选择了正确的文件,其中包括创建,DOCTYPE和映射...

只需根据您的数据库和设置更改值。