将Hibernate4与hbm.xml和xsd一起使用
在谷歌搜索了很多之后,现在感到困惑和沮丧 我正在将一个应用程序从Hibernate3升级到4。这在使用DTD3.0时效果很好,但现在需要使用4.0XSD,这就是所有东西都要从apex开始的地方 该应用程序使用hbm.xml文件来配置每个实体,没有任何注释 找到一个hbm文件的示例是非常有用的,但即使是Hibernate4的教程也只使用3.0DTD 我正在使用下面的将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
<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是否拦截这些请求并返回本地副本。缺少某些内容或我不理解。