2012-03-27 61 views
4

我试图建立一个简单的连接到我的数据库使用休眠。下面是我的配置文件:Hibernate配置错误(无法找到'hibernate-configuration'元素声明)

<?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和右现在我还没有从谷歌任何重要的帮助。

回答

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似乎正在遭受bug(不确定稳定性)。我在邮件列表中找到了解决方案,请检查一下。希望这可以帮助。

http://www.mail-archive.com/[email protected]/msg06937.html

0

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

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> 
相关问题