★☆

★☆
posts - 0, comments - 0, trackbacks - 0, articles - 80
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

多对多配置参数详解

Posted on 2008-08-14 12:23 阅读(158) 评论(0)  编辑  收藏 所属分类: Hibernate

多对多配置参数详解:


任何值集合或者多对多关联需要专用的具有一个或多个外键字段的collection table、
一个或多个collection element column,以及还可能有一个或多个索引字段。

<many-to-many
        column="column_name"                               (1)
        formula="any SQL expression"                       (2)
        class="ClassName"                                  (3)
        fetch="select|join"                                (4)
        unique="true|false"                                (5)
        not-found="ignore|exception"                       (6)
        entity-name="EntityName"                           (7)
        property-ref="propertyNameFromAssociatedClass"     (8)
        node="element-name"
        embed-xml="true|false"
    />
(1) column(可选): 这个元素的外键关键字段名
(2) formula (可选): 用于计算元素外键值的SQL公式. 
(3) class (必需): 关联类的名称
(3) outer-join (可选 - 默认为auto): 在Hibernate系统参数中hibernate.use_outer_join被打开的情况下,该参数用来允许使用outer join来载入此集合的数据。
(4) 为此关联打开外连接抓取或者后续select抓取。这是特殊情况;对于一个实体及其指向其他实体的多对多关联进全预先抓取(使用一条单独的SELECT),你不仅需要对集合自身打开join,也需要对<many-to-many>这个内嵌元素打开此属性。
(5) 对外键字段允许DDL生成的时候生成一个惟一约束。这使关联变成了一个高效的一对多关联。(此句存疑:原文为This makes the association multiplicity effectively one to many.)
(6) not-found (可选 - 默认为 exception): 指明引用的外键中缺少某些行该如何处理: ignore 会把缺失的行作为一个空引用处理。
(7) entity-name (可选): 被关联的类的实体名,作为class的替代。
(8) property-ref: (可选) 被关联到此外键(foreign key)的类中的对应属性的名字。若未指定,使用被关联类的主键。