将Hibernate4与hbm.xml和xsd一起使用

将Hibernate4与hbm.xml和xsd一起使用,hibernate,hbm,Hibernate,Hbm,在谷歌搜索了很多之后,现在感到困惑和沮丧 我正在将一个应用程序从Hibernate3升级到4。这在使用DTD3.0时效果很好,但现在需要使用4.0XSD,这就是所有东西都要从apex开始的地方 该应用程序使用hbm.xml文件来配置每个实体,没有任何注释 找到一个hbm文件的示例是非常有用的,但即使是Hibernate4的教程也只使用3.0DTD 我正在使用下面的 <hibernate-mapping xmlns="http://www.hibernate.org/xsd/hibe

在谷歌搜索了很多之后,现在感到困惑和沮丧

我正在将一个应用程序从Hibernate3升级到4。这在使用DTD3.0时效果很好,但现在需要使用4.0XSD,这就是所有东西都要从apex开始的地方

该应用程序使用hbm.xml文件来配置每个实体,没有任何注释

找到一个hbm文件的示例是非常有用的,但即使是Hibernate4的教程也只使用3.0DTD

我正在使用下面的

<hibernate-mapping
    xmlns="http://www.hibernate.org/xsd/hibernate-mapping"
    xsi:schemaLocation="http://www.hibernate.org/xsd/hibernate-mapping hibernate-mapping-4.0.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    package="org.hibernate.metamodel.binding">

使用这个,我得到了一个长长的错误列表,根本原因是

原因:org.xml.sax.saxpasseeption;行号:6;栏目号:51;cvc elt.1:找不到元素“hibernate映射”的声明

我对多个Google页面的阅读表明,我仍然需要一个doctype,这令人困惑,我认为我只是误解了,当我添加doctype时,Eclipse会抱怨hibernate映射元素的定义。忽略该错误(以防eclipse配置出现问题)会得到与运行时错误相同的结果:

必须为元素类型“hibernate映射”声明属性“xmlns”

我找不到使用hibernate 4 xsd的hbm.xml文件的教程或示例

有人能帮我摆脱困境吗?

关于“xmlns”属性的消息有点让人困惑,尽管您所要做的就是从
hibernate mapping
元素中删除所有属性,只留下
package
属性。至少,它对我有用。

试试这个:

<?xml version="1.0" encoding="UTF-8"?>

<hibernate-mapping package="your.package.name"
    xmlns="http://www.hibernate.org/xsd/hibernate-mapping"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.hibernate.org/xsd/hibernate-mapping
        http://www.hibernate.org/xsd/hibernate-mapping/hibernate-mapping-4.0.xsd">

    <!-- your mappings --->

</hibernate-mapping>

注意,这指向一个外部地址()

理想情况下,我们将使用在.jar中休眠包的本地XSD文件


我不知道Hibernate是否拦截这些请求并返回本地副本。

缺少某些内容或我不理解。