hibernate映射文件many-to-one 元素属性

  1. name:映射类属性的名字
  2. column:关联的字段
  3. class:关联类的名字
  4. cascade:设置操作中的级联策略 可选值为 all所有操作情况均进行级联、none所有操作情况均不进行级联、save-update执行save和update操作时级联、delete执行删除操作时级联
  5. fetch:设置抓取数据的策略 默认值为select序列选择抓取 可选值为join外连接抓取
  6. update:进行update操作时是否包含此字段
  7. insert:进行insert操作时是否包含此字段
  8. property-ref:指定关联类的一个属性,这个属性将会和本类的外键相对应(当外键参照一键时需要指定改属性)

 

单向N——1 关系 只需从多的一端访问1的一端;

应该在多的一端添加一个属性,改属性引用1端的关联实体;

 

A .-->无连接表的N——1 关联:

直接使用many-to-one 元素 来映射N——1 关联时,hibernate将无须使用连接表,直接使用外键关联策略来处理这种关联映射;

 

eg:

<!-- 用于映射N-1关联实体,指定关联实体类为Address
   指定外键列名为addressId,并指定级联全部操作 -->

  <many-to-one name="address" cascade="all"
   class="Address" column="addressId"/>

 

B.-->用连接表的N——1关联:

如果需要使用连接表来映射单向N——1关联,需要显示使用<join.../>该元素强制将一个类的属性映射到多张表中,通常也用于强制使用连接表!

         join元素:

table:指定连接表名;

schema:指定连接表所在的Schema,用于覆盖根元素的default-Schema属性;

catalog:指定连接表所在的Catalog,用于覆盖根元素的default-Catalog属性;

 

 

eg:

 

 

<!-- 使用join元素强制使用连接表 -->
   <join table="person_address" >
        <!-- 映射连接表中参照本表主键的外键列 -->
        <key column="personid"/>
        <!-- 映射连接表中参照关联实体的外键列 -->
        <many-to-one name="address" cascade="all"
                  class="Address" column="addressId"/>

    </join>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章