`
esffor
  • 浏览: 1367463 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个十分诡异的Hibernate Mapping文件XML校验错误

阅读更多

最开始的代码如下:

 

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<!-- 
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping package="subselect"> 
<!-- mutable指定Container的只读属性,只能从select中生成 -->

  
  
<class name="Container" mutable="false"> 
     
     
<id name="id" unsaved-value="0">
       
<generator class="native"></generator>
     
</id>
     
<property name="size" column="size"></property>
     
<property name="name" column="name"></property>
     
<property name="description" column="description"></property>
     
<property name="xparam" column="xparam"></property>
     
<property name="yparam" column="yparam"></property>
     
<property name="zparam" column="zparam"></property> 
     
<subselect>
        select id,size,name,description,diameter as xparam,diameter as yparam,height as zparam from Bottle
           union
        select id,size,name,description,width as xparam,length as yparam,height as zparam from Box
     
</subselect>
     
<synchronize table="Box"/>
     
<synchronize table="Bottle"/>
    
  
</class>  
</hibernate-mapping>

 可不知道为什么,class标签旁边总有个小红叉叉,但是在IE中又能正常显示这个xml

最后发现,原来是标签的前后顺序有问题,<synchronize>和<subselect>标签要放在<id>标签前面
并且<subselect>标签要在<synchronize>标签前面

修改后的代码如下:

 

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<!-- 
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping package="subselect"> 
<!-- mutable指定Container的只读属性,只能从select中生成 -->

  
  
<class name="Container" mutable="false"> 
      
      
<subselect>
        select id,size,name,description,diameter as xparam,diameter as yparam,height as zparam from Bottle
           union
        select id,size,name,description,width as xparam,length as yparam,height as zparam from Box
     
</subselect>
     
<synchronize table="Box"/>
      
<synchronize table="Bottle"/>
     
<id name="id" unsaved-value="0">
       
<generator class="native"></generator>
     
</id>
     
<property name="size" column="size"></property>
     
<property name="name" column="name"></property>
     
<property name="description" column="description"></property>
     
<property name="xparam" column="xparam"></property>
     
<property name="yparam" column="yparam"></property>
     
<property name="zparam" column="zparam"></property> 
    
    
  
</class>  
</hibernate-mapping>


分享到:
评论

相关推荐

    castor解析xml与xsd校验xml

    3. **绑定映射文件**:创建一个名为`mapping.xml`的绑定文件,用于定义XML元素与Java对象之间的映射关系。在这个文件中,你可以指定每个XML元素对应的Java类,以及元素和属性的映射。 4. **解析XML到Java对象**:...

    springmvc 使用hibernate-validator校验包

    Hibernate Validator是Hibernate组织开发的一个开源项目,它是JSR 380(Java Bean Validation 2.0)的参考实现。它提供了一套API和注解,可以方便地在Java对象中定义验证规则,对输入数据进行校验,从而确保程序的...

    NHibernate XML映射文件自动生成工具

    1. **&lt;hibernate-mapping&gt;**:根元素,标识这是一个NHibernate映射文件。 2. ****:定义一个.NET类及其与数据库表的映射。`name`属性指定了类的全名,`table`属性指定了对应的数据库表。 3. ****:标识类的主键,...

    hibernate所有用到的jar包

    6. **dom4j.jar**:一个用于处理XML文档的库,Hibernate使用它来解析和生成HBM(Hibernate Mapping)文件,这些文件定义了Java对象和数据库表之间的映射关系。 7. **antlr.jar**:Antlr是一个强大的解析工具,用于...

    hibernate-framework-orm-4.2.4.Final.zip

    同时,每个数据库表对应一个Java实体类,通过注解或XML映射文件(hibernate-mapping.xml)定义实体类与表之间的映射关系。 3. **SessionFactory与Session** SessionFactory是Hibernate的核心组件,它是线程安全的...

    struts+hibernate实现的教师管理系统

    本文将深入探讨一个使用Java、Struts和Hibernate技术实现的教师管理系统,它是学习Model-View-Controller(MVC)架构模式的绝佳实例。 首先,我们要理解MVC模式。这是一种软件设计模式,它将应用程序分为三个主要...

    hibernate_validator_reference_5.1.3.pdf

    Hibernate Validator作为一个功能丰富的验证框架,是进行Java数据校验的首选工具。它的易用性、灵活性以及与Spring框架的良好整合,使得它成为构建现代企业级Java应用不可或缺的一部分。通过本文的详细解读,我们...

    xml映射工具

    在给定的压缩包文件"O-R映射工具(XML)"中,可能包含了一个专注于Object-Relational Mapping(ORM)的XML工具。ORM是一种编程技术,用于将关系数据库的数据模型映射到面向对象的程序设计语言。这样的工具可以帮助...

    整合Spring + hibernate所需的jar包

    标题“整合Spring + Hibernate所需的jar包”表明这是一个包含用于整合Spring和Hibernate开发所需的库文件的压缩包。这些jar文件通常包括Spring的核心模块、数据访问/集成模块以及Hibernate的核心库和其他相关依赖。 ...

    hibernate中文参考文档

    在使用Hibernate之前,我们需要进行必要的配置,包括XML配置文件(hibernate.cfg.xml)和实体类的注解配置。配置文件中包含了数据库连接信息、方言设置、缓存策略等关键参数。实体类则通过注解如@Entity、@Table、@...

    struts2+spring+hibernate配置

    Hibernate是一个开源的ORM(Object-Relational Mapping)框架,它允许开发者用Java对象来操作数据库记录,避免了直接编写SQL语句。Hibernate支持实体类、映射文件、会话工厂等概念,提供了一种对象-关系映射机制,...

    基于Struts+Hibernate+Spring的Web_应用开发

    - **核心概念**:虽然Hibernate推荐每个表对应一个对象,并且将映射文件和对象文件分开存放,但在小型项目中,为了简化管理和减少冲突,可以将多个表的映射信息整合到一个或少数几个`.hbm.xml`文件中。 - **实现...

    web.xml sample

    - `&lt;taglib&gt;`元素定义了一个标签库,`taglib-uri`是标签库的URI,`taglib-location`指定了TLD(Tag Library Descriptor)文件的位置。 6. **会话配置(SESSION CONFIGURATION)**: - `&lt;session-config&gt;`元素中的...

    HIBERNATE官方参考手册

    4. **配置文件(Hibernate Configuration File)**:`.cfg.xml`文件用于配置Hibernate,包括数据库连接信息、实体映射等。 5. **会话(Session)**:Hibernate的会话接口是数据库操作的主要入口,它是短暂的,用于...

    配置Hibernate所需的jar包

    8. **dom4j.jar**: 一个强大的文档对象模型库,用于处理XML,它被Hibernate用来解析和生成HBM(Hibernate Mapping)文件。 9. **commons-collections.jar**: Apache Commons Collections库提供了大量的集合处理工具...

    struts2+hibernate

    Struts2 是一个 MVC(模型-视图-控制器)架构的框架,而 Hibernate 是一个对象关系映射(ORM)工具,用于简化数据库操作。 **Struts2**: 1. **MVC 模式**:Struts2 是基于 MVC 设计模式的,它将业务逻辑、数据和...

    ssh框架写的登录校验增删改查程序

    3. **Hibernate框架**:Hibernate是一个对象关系映射(Object-Relational Mapping,ORM)工具,它简化了Java应用与数据库之间的交互。在这个程序中,Hibernate可能被用来持久化数据,如用户信息,通过HQL(Hibernate...

    hibernate3.2.4 源代码

    - **Mapping文件(.hbm.xml)**: 描述实体类与数据库表之间的映射关系。 2. **设计模式**: - **工厂模式**: Hibernate使用SessionFactory来创建Session实例,这是一个典型的工厂模式应用。 - **单例模式**: ...

    开发web_xml.rar_WEB XML_java web开发_web.xml_web开发_web

    `web.xml`文件是一个XML格式的配置文件,用于定义Servlet、过滤器(Filter)、监听器(Listener)、会话超时、错误页面等关键组件及其行为。它是Java Web应用程序的配置中心,为容器(如Tomcat)提供运行时环境的...

Global site tag (gtag.js) - Google Analytics