Hibernate 的映射问题

Posted

技术标签:

【中文标题】Hibernate 的映射问题【英文标题】:Mapping problem with Hibernate 【发布时间】:2011-07-31 06:21:01 【问题描述】:

我是 hibernate 新手,在 hibernate.cfg.xml 文件中指定映射文件的位置时遇到问题。

我在 org.hibernate.tutorial.chapter1.domain.Event.java 包中创建了一个 Event 对象,其对应的 Event.hbm.xml 文件位于同一位置。

我正在尝试在 hibernate.cfg.xml 映射标记中指定位置,但我得到一个 InvalidMappingException ()。

我在帖子中添加了:异常,映射文件的映射和项目文件结构。

任何建议都会很棒。

484 [主要] 错误 org.hibernate.util.xml.ErrorLogger - 解析 XML 时出错 (1) : cvc-elt.1: 找不到元素的声明 '休眠映射'。 495 [主要]错误 org.hibernate.util.xml.ErrorLogger - 解析 XML 时出错 (2) : cvc-elt.1: 找不到元素的声明 '休眠映射'。最初的 SessionFactory 创建 failed.org.hibernate.InvalidMappingException: 无法读取 XML

<!-- Names the annotated entity class -->
<mapping resource="org/hibernate/tutorial/chapter1/domain/Event.hbm.xml"/>

【问题讨论】:

【参考方案1】:

确保您在 XML 内容顶部的 Event.hbm.xml 中有一个 DOCTYPE such as:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="org.hibernate.tutorial.domain">
[...]
</hibernate-mapping>

【讨论】:

答案还是有帮助的!谢谢【参考方案2】:

我的问题是我的 XML 文件丢失了:

<?xml version="1.0" encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

将其插入 XML 文件的开头后,一切都变得很好。 谢谢!

【讨论】:

以上是关于Hibernate 的映射问题的主要内容,如果未能解决你的问题,请参考以下文章

hibernate多对多映射中间表有多余字段问题该如何映射

Hibernate 的映射问题

Hibernate/NHibernate 映射规则

Hibernate - 超越对象/关系映射?

hibernate 表名为变量的映射文件 怎么配。 如何用?

9Hibernate之关联映射(hibernate映射)