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

hibernate学习札记(二)

2012-11-11 
hibernate学习笔记(二)一、id生成方式1,序列sequence 只适用于Oracleid nameid columnidgenerator

hibernate学习笔记(二)
一、id生成方式
1,序列sequence 只适用于Oracle
<id name="id" column="id">
<generator column="id">
<generator column="id" type="integer">
<generator column="id">
<generator 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加上唯一约束,使之一对多关系强制转化为一对一关系。

热点排行