映射的基本元素和属性分析

映射的基本元素和属性分析

' 关系映射文件
<hibernate-mapping> 0

属性:
default-scheam 指定默认的数据表命名
package 指定包名

<class> 1

属性

name设定类名

table 设定表名

schema指定默认的数据表命名
mutable 如果为false 等价于所有的property元素update属性为false 整个实例不会被更新

dynamic-insert 如果为true 等价于所有的property元素dynamic-update属性为true 保存对象时会动态生成updatet语句 包含所有不为null的值 默认false

dynamic-update 果为true 等价于所有的property元素dynamic-update属性为true 保存对象时会动态生成updatet语句 包含所有不为null的值 默认false

lazy 如果为true 表示使用延迟检索策略

子元素

<id>2子元素必须存在且只能存在一次<property>元素可以不存在,存在一次或者多次,必须先定义<id>元素再定义<property>元素 <id>用来设定持久化类的OID和表的主键映射

子元素

<generator>3 子元素制定对象标识符生成器,他负责为OID生成唯一从标识符

子元素

<property> 2

属性

name 指定持久化类的属性的名字

type定Hibernate映射的类型 Hibernate映射类型是与SQL类型的桥梁

not-null 如果为true表明不允许为空
column 指定与类的属性映射的表的字段名
access 指定Hibernate访问持久化类的属性方式
property 默认值 通过get 和set方法
field 表明Hibernate运用java反射机制直接访问类的属性

insert 如果为false 在insert语句永远不插入该字段
update 如果为false 在update语句永远不插入该字段
dynamic-insert 如果为true 保存插入一个对象时会动态生成insert语句 包含所有不为null的值 默认false
dynamic-update如果为true 保存更新对象时会动态生成updatet语句 包含所有不为null的值 默认false

子元素

<meta> 3

属性:

class-description 指定类的javadoc
field-description 指定描述类属性的javadoc
interface 如果为true 表示为接口而不是类
implements 指定所实现的接口
generated-class 重新指定生成的类名
scope-class 指定类的修饰符 默认是public
scope-set 指定set方法的修饰符,默认是public
scope-get 指定get方法的修饰符,默认是public
scope-field 指定类的属性的修饰符,默认是private
use-in-toString 如果为true,指定在toString()的方法里包含此属性
gen-property 如果是false 不会在java类中生成此属性,默认为true
finder-method 指定find方法名

子元素

<column>3

属性:

name 该字段的名字
length 该字段的长度
not-null 如果为true 表示该字段不许为空
unique 如果为true 表示该字段有唯一约束
index 给一个或多个字段建立索引
unique-key 为多隔字段设定唯一约束
foreign-key 为外键约束命名 在<many-to-one>,<one-to-one>,<key>和<many-to-many>元素中包含foreign-key属性 如果没有定义该属性hbm2dll工具会自动为外键约束生成唯一的名字,在双向关联中inverse属性为true的一端不能设置foreign-key属性
sql-type 指定字段的sql类型
check 设定sql检查约束

<componenet>2 组件

属性:
name 持久化类的属性名
class 类名
元素:
<parent> 3 指定所属的整体类
<property>3 内部的属性

值类型 和 实体类型

值类型没有OID 不能被单独持久化 实体类可以单独持久化

' 当程序持久化组件的所属类的时候 组件类会自动持久化 Hibernate是不允许单独持久化组件类的
' 组件可以嵌套 可以关联其他持久化类 其他持久化类不能关联它

一个简单的示例

映射的基本元素和属性分析<?xmlversion="1.0"?>
映射的基本元素和属性分析<!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"
映射的基本元素和属性分析"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
映射的基本元素和属性分析
映射的基本元素和属性分析
<hibernate-mapping>
映射的基本元素和属性分析
映射的基本元素和属性分析
<classname="ergal.Customer"table="CUSTOMERS"lazy="true">
映射的基本元素和属性分析<idname="id"type="long"column="ID">
映射的基本元素和属性分析<generatorclass="increment"/>
映射的基本元素和属性分析</id>
映射的基本元素和属性分析
映射的基本元素和属性分析
<propertyname="name"type="string">
映射的基本元素和属性分析<columnname="NAME"length="15"/>
映射的基本元素和属性分析</property>
映射的基本元素和属性分析<set
映射的基本元素和属性分析
name="orders"
映射的基本元素和属性分析cascade="all-delete-orphan"
映射的基本元素和属性分析inverse="true"
映射的基本元素和属性分析>
映射的基本元素和属性分析
映射的基本元素和属性分析
<keycolumn="CUSTOMER_ID"/>
映射的基本元素和属性分析<one-to-manyclass="ergal.Order"/>
映射的基本元素和属性分析</set>
映射的基本元素和属性分析</class>
映射的基本元素和属性分析</hibernate-mapping>