Hibernate 映射文件 结构
<?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" >
<hibernate-mapping package="com.test.hibernate">
<class name="News" table="news_table">
<id name="id">
<generator class="identity"/>
</id>
<property name="title" not-null="true" type="string"/>
<property name="content" type="string"/>
<!--property name="fullContent"
formula="(select concat(nt.title,nt.content) from news_table nt where nt.id=id)"></property -->
<property name="fullContent"
column="full_content" type="string"
generated="insert"></property>
</class>
</hibernate-mapping>
1. 主要元素配置
hibernate-mapping 有各种属性(P389),class也有各种属性(P390).
class里面也可以配置hibernate-mapping表示覆盖配置.
hibernate-mapping里面可以包含多个class,但是一般一个文件只配置一个class(表).
class里面id配置标识属性,其他使用property配置.
id和property都有各种 属性值可配置(P392)
2. id的生成器配置
<id name="id">
<generator class="identity"/>
</id>
上面主键配置中,generator表示主键生成器(P392).
3. property元素的属性配置(p394)
其中,generated熟悉配置该字段是否由数据库自动生成(通过触发器生成)
配置值为never:不由数据库生成
insert: insert时有数据库生成
always:insert和udpate时都由数据库生成.
配置的类中,在generated配置的值insert时,持久化类中对应的属性值不会插入到数据库中.
在配置的值为always时,持久化类中对应的属性值 不会 被insert/update到数据库.
4. 映射集合属性
Hibernate要求,之久话集合字段必须声明为 接口.
在配置映射文件时,可以使用list,set,map,array等元素(相当于代替普通的property元素),
来配置集合映射.
这些元素可以有下面的属性:
table 指定保存集合属性值的表名,如果没有指定该值,则表名和name相同.
column:指定外键的列名
on-delete指定外键约束是否打开数据库级别的级联删除.
property-ref:指定外键引用的字段是否为原表的主键.
update:指定外键列是否可更新
unique:指定外键列是否具有唯一约束
其他参考(P398)
5. 映射组件
<!-- 组件,表示一个字段是由一个对象表示,这个对象包含几个字段,这些字段都是主表的字段 -->
<component name="fullName" class="FullName" unique="false">
<parent name="owner" />
<property name="first" />
<property name="last" />
<!-- 组件的字段为集合(Map) -->
<map name="power" table="name_power">
<key column="person_id" not-null="true" />
<map-key column="name_aspect" type="string" />
<element column="name_power" type="int" />
</map>
</component>
7. 映射集合,该集合的 元素 为 组件,元素数据来自集合的表,组件字段是集合表中的.
普通map中一个key对应一个字段,而使用组件作为元素,则一个key可以对应多个字段.
<!-- 集合的元素 为 组件 -->
<map name="nicks" table="nick_inf">
<key column="person_id" not-null="true" />
<map-key column="phase" type="string" />
<!-- 集合的元素 为 组件 -->
<!-- 为简化管理,Hibernate不再允许composite-element 里面再包含list,map,set等集合元素 -->
<composite-element class="FullName">
<parent name="owner" />
<property name="first" />
<property name="last" />
</composite-element>
</map>
8. 映射集合,该集合的 key 为 组件, 使用 composite-map-key
组件字段是集合表中的.
<!-- 集合的key为组件, -->
<map name="nickPower" table="nick_power">
<key column="person_id" not-null="true" />
<!-- 因为使用组件作为key,这里必须用这个composite-map-key标签 -->
<composite-map-key class="FullName">
<!-- 映射作为key的组件的 字段 -->
<key-property name="first" type="string" />
<key-property name="last" type="string" />
</composite-map-key>
<element column="nick_power" type="int" />
</map>
9. 组件作为复合主键
此时,组件必须满足:
(1) 实现 java.io.serializable接口
(2) 需要正确重写equals()和hashCode()方法
一个映射配置中,id和composite-id只能出现一次(因为一个表只能有一个主键)
<!-- 组件作为复合主键 -->
<composite-id name="myCompostieKey" class="CompositeKey">
<!-- key1,key2为两个列,在这两个列上生成符合主键,用这两个列构造CompositeKey对象 -->
<key-property name="key1" type="int" />
<key-property name="key2" type="string" />
</composite-id >
相关推荐
`生成hibernate映射文件工具`是为了简化这一过程而设计的,它自动根据数据库的表结构生成对应的Hibernate映射文件,极大地提高了开发效率。 首先,我们需要理解Hibernate的核心概念。Hibernate是一个优秀的Java ORM...
【压缩包子文件的文件名称列表】:“hibernate映射文件自动生成.doc”很可能是这篇博文的文档形式,其中详细介绍了具体的操作步骤、使用工具或者自定义脚本,以帮助开发者理解并应用自动化的映射文件生成过程。...
Hibernate映射文件是XML格式的文件,它定义了数据库表与Java实体类之间的对应关系,包括字段映射、主键策略、关联关系等。映射文件让开发者无需编写SQL语句,就能通过Java对象进行数据库操作。 2. **MyEclipse ...
首先,我们需要了解Hibernate映射文件的基本结构。通常,一个映射文件以`.hbm.xml`为扩展名,它使用XML格式来描述Java类和数据库表的对应关系。映射文件包含了类名、表名、字段及其数据类型等信息。例如: ```xml ...
#### Hibernate映射文件结构 1. **DTD声明**:映射文件的头部会包含DTD声明,确保文件遵循正确的DTD规范。例如: ```xml <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" ...
首先,我们需要了解一个基本的Hibernate映射文件结构: ```xml <hibernate-mapping> <!-- 映射类的属性 --> </hibernate-mapping> ``` 这里的`<class>`标签表示映射到特定的Java类,其属性`name`指定了对应的...
标题“Hibernate映射树形结构”指的是如何用Hibernate来存储和操作具有层级关系的数据。 1. **单表映射策略**: Hibernate可以使用单个表来存储树形结构,通过一个自增的`id`字段以及一个表示父节点的`parent_id`...
Hibernate映射文件,通常以`.hbm.xml`为扩展名,是Hibernate用来定义Java类与数据库表之间关系的配置文件。它包含了关于实体类与数据库表的字段对应、主键生成策略、关联关系等信息。通过这些映射文件,Hibernate...
#### Hibernate映射文件结构解析 Hibernate映射文件是连接Java对象与数据库表的关键,它定义了对象与数据库表之间的映射关系。映射文件的根元素是`<hibernate-mapping>`,该元素可以拥有多个`<class/>`子元素,每个...
3. **逆向工程(Hibernate Reverse Engineering)**:选中要映射的数据库表,右键选择`Hibernate Reverse Engineering`,这是MyEclipse提供的将数据库表转换为Hibernate映射文件和实体类的工具。 4. **配置生成选项...
### MyEclipse自动生成Hibernate映射文件 #### 一、概述 在开发基于Java的Web应用时,ORM(对象关系映射)框架如Hibernate能够极大地提高数据持久化的效率及便捷性。MyEclipse是一款功能强大的集成开发环境,支持...
确保数据库与Hibernate映射文件一致,能正确地反映实体之间的关系。导入DBO到SQL Server数据库后,就可以通过Hibernate的Session接口进行CRUD(创建、读取、更新、删除)操作了。 在开发过程中,理解并熟练运用这些...
本文将详细探讨如何使用Hibernate映射集合属性List,以及如何让Hibernate自动创建对应的数据库表,无需手动编写SQL语句。 首先,我们需要理解Hibernate的映射机制。Hibernate通过ORM(对象关系映射)技术将Java对象...
IntelliJ IDEA下自动生成Hibernate映射文件以及实体类 IntelliJ IDEA是一款功能强大的集成开发环境(IDE),它提供了许多实用的功能来提高开发效率。其中一个非常有价值的功能是自动生成Hibernate映射文件和实体类...
在Hibernate的映射文件(hbm.xml)中,我们可以使用`<array>`元素来配置数组映射。基本结构如下: ```xml ``` - `name`:指定Java对象中对应属性的名称。 - `type`:指定数组元素的类型,可以是基本类型,...
这些代码可能包括实体类定义、映射文件(如.hbm.xml或使用注解的类)、Hibernate配置文件(hibernate.cfg.xml)以及C3P0的配置部分。通过对这些代码的学习和分析,我们可以更深入地理解如何在实际项目中运用这些技术...