使用http://www.hibernate.org/dtd 的Hibernate问题

我目前在我的hibernate配置文件中使用http://hibernate.sourceforge.net作为我的命名空间,这给了我这些警告:

公认的过时的hibernate名称空间http://hibernate.sourceforge.net/ 。 请改用名称空间http://www.hibernate.org/dtd/ 。 请参阅Hibernate 3.6迁移指南!

所以我尝试将hibernate.cfg.xml和所有其他* .hbm.xml文件切换到使用http://www.hibernate.org/dtd 。 然而,当我尝试使用eclipse中的hibernate工具生成代码时,我收到以下错误消息(代码生成与其他命名空间一起工作正常):

org.hibernate.HibernateException:无法解析配置:C:\ dev \ workspace \ DataLoad \ hibernate.cfg.xml无法解析配置:C:\ dev \ workspace \ DataLoad \ hibernate.cfg.xml
org.dom4j.DocumentException:www.hibernate.org嵌套exception:www.hibernate.org www.hibernate.org嵌套exception:www.hibernate.org org.dom4j.DocumentException:www.hibernate.org嵌套exception:www.hibernate。 org www.hibernate.org嵌套例外:www.hibernate.org

这是我的hibernate.cfg.xml:

      com.mysql.jdbc.Driver   jdbc:mysql://localhost:3306/findata?tcpKeepAlive=true  root xxxxxxxx 2 true  org.hibernate.dialect.MySQLDialect  thread  org.hibernate.cache.NoCacheProvider                      

我们上次解析hibernate cfg文件时也遇到了一些问题。 原因的根源是hibernate站点无法访问。 经过一些谷歌搜索和调试org.hibernate.util.DTDEntityResolver类后,我意识到还有另一种方法,如何指定DTD URL:

  

这意味着hibernate将从类路径加载DTD – 它通常包含在org / hibernate目录中的hibernate jar中。

但是,我们使用hibernate 3.5.6 – 我不知道如果这种方法在新版本中仍然有效 – 请试一试。 这样做的好处是您完全独立于互联网连接,代理等。

查看此迁移指南: https : //community.jboss.org/wiki/HibernateCoreMigrationGuide36

您必须将dtd url更改为http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd