首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

hibernate的id生验方式以及Hibernate中对类关系的处理

2012-09-12 
hibernate的id生成方式以及Hibernate中对类关系的处理一、id生成方式 1,sequence 只适用于Oracle 2,identit

hibernate的id生成方式以及Hibernate中对类关系的处理

一、id生成方式
1,sequence 只适用于Oracle
2,identity 自增列,适用于SQLServer、MySql
3,increment 取最大值加一
4,native 根据底层数据库指定生成方法
5,高低位算法
<id name="id" column="id">
<generator table="car_pk">
<id name="id" column="id" type="integer">
<generator />
</id>
<property name="name" column="name" type="string" />
<one-to-one name="engine" cascade="all"/>
</class>
注:cascade="all" 表示增删改查Car对象时都会级联增加、删除和修改Engine对象。
  级联一定是在主对象的映射文件中

b、附表Engine.hbm.xml的写法
<class name="Engine" table="engine_pk">
<id name="id" column="id" type="integer">
<generator column="model" type="string" />
<one-to-one name="car" constrained="true"/>
</class>
注:constrained="true"表示Engine应用了Car的主健作为外健。
foregin表明id的生成方式是引用表car的主键

B、外健映射:主表中用one-to-one,通过property -ref many-to-one
a、主表Car.hbm.xml的写法
<class name="Car" table="car_fk">
<id name="id" column="id" type="integer">
<generator />
</id>
<property name="name" column="name" type="string" />
<one-to-one name="engine"
property-ref="car" cascade="save-update"/>
</class>
注:name="engine" property-ref="car"表示engine表引用了car表的主健作为他的外健。
cascade="save-update"表示增改Car对象时都会级联增加和修改Engine对象。

b、附表Engine.hbm.xml的写法
<class name="Engine" table="engine_fk">
<id name="id" column="id" type="integer">
<generator />
</id>
<property name="model" column="model" type="string" />
<many-to-one name="car"
unique="ture" column="carid"/>
</class>
注:unique="ture" column="carid"表示为engine表中的外健carid加上唯一约束,使之一对多关系强制转化为一对一关系。

热点排行