`
gqzyyxh
  • 浏览: 9642 次
  • 性别: Icon_minigender_1
  • 来自: 常州
文章分类
社区版块
存档分类
最新评论

Hibernate的映射文件(hbm.xml)属性说明

阅读更多
Hibernate的映射文件(hbm.xml)属性说明
1.class 节点
name: 类名
table: 类对应表名,默认为类名称
dynamic-update: 生成更新字段时,只包含发生变动的字段,默认为false。
dynamic-insert: 生成insert语句时仅包含非null字段
Proxy: 代理类,默认为空
discriminator-value: 子类辨别标识用于多态支持
where: 通过限定条件查询结果集。如:查询有籍在校学生的信息可以使用"where studentstatus='0'"

2.id节点
1.column                字段名称
2.type                  字段类型
3.length                字段长度
4.unsaved-value         用于判断对象值是否已经保存
5.generator-class       主键产生方式
                        assigned
                        hilo
                        seqhilo
                        increment
                        identity
                        sequence
                        native
                        uuid.hex
                        uuid.string
                        foreign
---------------------------------------------------------------------------------------------------------------
主键产生方式说明
increment(递增)
用于为long, short或者int类型生成唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用。在集群下不要使用。
identity
对DB2,MySQL, MS SQL Server, Sybase和HypersonicSQL的内置标识字段提供支持。返回的标识符是long, short 或者int类型的。
sequence (序列)
在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列(sequence),而在Interbase中使用生成器(generator)。返回的标识符是long, short或者 int类型的。
hilo (高低位)
使用一个高/低位算法来高效的生成long, short或者 int类型的标识符。给定一个表和字段(默认分别是是hibernate_unique_key 和next_hi)作为高位值得来源。高/低位算法生成的标识符只在一个特定的数据库中是唯一的。在使用JTA获得的连接或者用户自行提供的连接中,不要使用这种生成器。
seqhilo(使用序列的高低位)
使用一个高/低位算法来高效的生成long, short或者 int类型的标识符,给定一个数据库序列(sequence)的名字。
uuid.hex
用一个128-bit的UUID算法生成字符串类型的标识符。在一个网络中唯一(使用了IP地址)。UUID被编码为一个32位16进制数字的字符串。
uuid.string
使用同样的UUID算法。UUID被编码为一个16个字符长的任意ASCII字符组成的字符串。不能使用在PostgreSQL数据库中
native(本地)
根据底层数据库的能力选择identity, sequence 或者hilo中的一个。
assigned(程序设置)
让应用程序在save()之前为对象分配一个标示符。
foreign(外部引用)
-------------------------------------------------------------------------------------------------------------------------
3.property 节点
1.column                数据库表字段名称
2.type                  类型
3.length                长度
4.not-null              字段是否允许为空
5.unique                字段是否允许唯一(是否允许重复值)
6.insert                insert操作时,是否允许包含本字段数值
7.update                update操作时,是否包含本字段数据
====================================================================
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
   <class name="com.oreilly.hh.Track" table="TRACK">
     <meta attribute="class-description">
        Represents a single playable track in the music database.
        @author Jim Elliot(with help from Hibernate)
     </meta>
   
     <id name="id" type="int" column="TRACK_ID">
       <meta attribute="scope-set">protected</meta>
          <generator class="native"/>
     </id>
   
     <property name="title" type="string" not-null="true"/>
   
     <property name="filePath" type="string" not-null="true"/>
   
     <property name="playTime" type="time">
        <meta attribute="field-description">Playing time</meta>
     </property>
   
     <property name="added" type="date">
        <meta attribute="field-description">When the track was created</meta>
     </property>
   
     <property name="volume" type="short" not-null="true">
        <meta attribute="field-description">How loud to play the track</meta>
     </property>
   
   </class>
</hibernate-mapping>
     说明如下:
1.<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
用于导言说明,说明它的文件格式定义。
2.<hibernate-mapping>标签里是真正的映射。
3.<class name="com.oreilly.hh.Track" table="TRACK">
定义一个类com.oreilly.hh.Track的映射。(可以定义任意多个类在一个映射文件里)。表示存在数据库表TRACK中。
4. <meta attribute="class-description">
        Represents a single playable track in the music database.
        @author Jim Elliot(with help from Hibernate)
     </meta>
定义了说明,可以被JavaDoc读取。
5. <id name="id" type="int" column="TRACK_ID">
       <meta attribute="scope-set">protected</meta>
          <generator class="native"/>
     </id>
定义了类属性和数据库表列的映射。   <generator class="native"/>是表示ID生成策略,此种策略有多种。
6. <property name="volume" type="short" not-null="true">
        <meta attribute="field-description">How loud to play the track</meta>
   </property>                                                                                                                                 定义了说明,可以被JavaDoc读取。
分享到:
评论

相关推荐

    使用MyEclipse工具生成POJO类和映射文件.hbm.xml

    生成的 POJO 类将存放在我们指定的存放位置,并且映射文件 .hbm.xml 将被添加到 hibernate.cfg.xml 文件中。 使用 MyEclipse 工具生成 POJO 类和映射文件 .hbm.xml 非常简单。MyEclipse 提供了许多实用的功能来帮助...

    hibernate.hbm.xml详解

    在Java的持久化框架Hibernate中,`hibernate.hbm.xml`文件是至关重要的,它定义了Java对象与数据库表之间的映射关系,使得对象模型能够与关系型数据库无缝对接。这篇文章将深入解析`hibernate.hbm.xml`的结构和主要...

    利用hibernate自动生成hbm.xml文件和entity类.doc

    3. 将 hbm.xml 文件加入到 application.mappinginfo.xml 中:将 hbm.xml 文件加入到 application.mappinginfo.xml 中,以便于 Hibernate 可以正确地加载映射关系。 五、 小结 通过以上步骤,开发者可以使用 ...

    根据实体类自动生成hibernate的hbm.xml映射文件

    请输入包的名称和映射文件需要放到的文件夹之后运行CreateTableXml里的main方法,就可以自动生成映射文件了。记着刷新文件夹,要不然是看不到的。 当然只是一些基础的属性。对于一些比较复杂,还是需要自己来修改的...

    利用Middlegen Hibernate3生成hbm.xml配置和java类

    标题中的“利用Middlegen Hibernate3生成hbm.xml配置和java类”指的是使用Middlegen工具来自动化创建Hibernate3框架所需的映射文件(hbm.xml)和对应的Java实体类。这个过程是数据库对象到Java对象(O/R Mapping)的...

    Hibernate-tools解决hbm.xml中文注释乱码和生成实体类注释

    `Hibernate-tools`是Hibernate项目提供的一组实用工具,它包括了代码生成、反编译数据库模式到`hbm.xml`文件、JPA实体类生成等功能。在5.2.1版本中,这个工具集已经相当成熟,可以很好地支持各种定制需求。 1. **...

    Hibernate的........htm.xml和hibernatecfg.xml配置

    `.hbm.xml`文件用于映射数据库表和Java类之间的关系,而`hibernate.cfg.xml`则是Hibernate的整体配置文件,包含了数据库连接、事务管理等核心设置。 ** Hibernate基础知识 ** Hibernate是一款流行的Java持久化框架...

    hibernate。hbm.xml配置详解

    在 Hibernate 中,`hbm.xml` 文件是用于定义对象与数据库表之间映射的元数据文件。这篇文档将深入解析 `hbm.xml` 配置的各个方面。 ### 1. `hbm.xml` 文件结构 `hbm.xml` 文件的开头通常包含 XML 声明和 DTD 引用...

    Hibernate关联关系hbm.xml中的相关属性

    在Hibernate中,关联关系是对象关系映射(ORM)的核心组成部分,它允许我们将数据库的表结构映射到Java对象,并管理这些...在hbm.xml文件中正确地配置这些标签和属性,可以使Hibernate更高效、更灵活地管理对象关系。

    Oracle自动生成hibernate实体(.java 和.hbm.xml文件)存储过程

    本主题聚焦于如何在Oracle环境中自动生成Hibernate实体类(`.java`文件)及其对应的映射文件(`.hbm.xml`文件)。这个过程通常是为了减少手动编写这些文件的工作量,提高开发效率。 首先,我们需要理解`Oracle`存储...

    MyEclipse生成hbm.xml文件(全图解)

    右键点击表,选择`Hibernate Reverse Engineering`,这是MyEclipse提供的逆向工程功能,它可以自动生成Java实体类和对应的hbm.xml映射文件。在弹出的对话框中,指定生成实体类和hbm.xml文件的包名,并确保勾选`...

    Hibernate逆向生成entity和hbm.xml文件

    实体类是Java对象,它们代表数据库中的表,而hbm.xml文件则是Hibernate的映射文件,用于定义实体类与数据库表之间的对应关系。在实际开发中,当数据库表结构已经设计好时,使用Hibernate的逆向工程工具可以自动创建...

    使用Hibernate逆向生成实体类的方法(注解和hbm.xml映射文件)

    本文将详细介绍如何利用Hibernate逆向生成实体类的方法,包括通过注解映射以及hbm.xml文件映射两种方式。 #### 一、环境准备与配置 1. **安装并配置MyEclipse**: - 安装MyEclipse,并确保已安装Hibernate插件。 ...

    spring如何摒弃hibernate.cfg.xml

    这个属性用于指定类路径下具体的Hibernate映射文件(.hbm.xml)。例如,如果我们有一个名为`petclinic.hbm.xml`的映射文件,我们可以这样配置: ```xml &lt;value&gt;petclinic.hbm.xml ``` 这种方式只能处理单个...

    java根据实体类生成Hibernate映射文件

    总的来说,通过编写Java程序自动根据实体类生成Hibernate映射文件,可以提高开发效率,减少手动维护映射文件的工作量。这个过程涉及到Java反射、XML处理以及对Hibernate映射机制的理解,对于深入掌握Java与数据库的...

    hbm xml配置详解 ssh框架

    在Hibernate中,XML配置文件是连接对象模型与数据库模型的关键,而`.hbm.xml`文件就是这种映射的载体。本文将深入探讨Hibernate的`.hbm.xml`配置文件以及其内部的映射类型。 首先,让我们了解`.hbm.xml`文件的作用...

    structs的配置文件hbm.xml

    HBM.XML文件是Hibernate用于配置实体类和数据库表之间的映射关系的文件,其全称为Hibernate Mapping XML。在本例中,HBM.XML文件的具体结构如下: ```xml &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;!DOCTYPE ...

    hibernate.cfg.xml文件

    在`hibernate.cfg.xml`中,我们通常不会直接写入实体类的属性映射,而是引用外部的`.hbm.xml`文件。这些映射文件详细描述了实体类和数据库表之间的关系,包括字段映射、主键生成策略等。 四、运行时加载配置 在...

    Xdoclet生成*.hbm.xml映射文件

    在Java开发中,尤其是在使用Hibernate作为持久层框架时,数据库模型与Java对象之间的映射文件*.hbm.xml是必不可少的。这种映射文件定义了数据库表与Java实体类之间的对应关系,方便ORM(Object-Relational Mapping)...

    myeclipse中自动生成hibernate的POJO、DAO和hbm.xml文件

    MyEclipse中自动生成Hibernate的POJO、DAO和hbm.xml文件 MyEclipse是一款功能强大且流行的集成开发环境(IDE),它提供了许多实用的功能来帮助开发者快速构建和维护项目。其中,MyEclipse提供了对Hibernate的支持,...

Global site tag (gtag.js) - Google Analytics