温习01——Hibernate ID主键生成策略

一、 Xml方式

<id>标签必须配置在<class>标签内第一个位置。由一个字段构成主键,如果是复杂主键<composite-id>标签

被映射的类必须定义对应数据库表主键字段。大多数类有一个JavaBeans风格的属性, 为每一个实例包含唯一的标识。<id> 元素定义了该属性到数据库表主键字段的映射。 

<id

        name="propertyName"                                          (1)

        type="typename"                                              (2)

        column="column_name"                                         (3)

        unsaved-value="null|any|none|undefined|id_value"             (4)

        access="field|property|ClassName"                            (5)

        node="element-name|@attribute-name|element/@attribute|.">

        <generator class="generatorClass"/>

</id>

<!--EndFragment-->

(1) name (可选): 标识属性的名字(实体类的属性)。 

(2) type (可选): 标识Hibernate类型的名字(省略则使用hibernate默认类型),也可以自己配置其它hbernate类型(integer, long, short, float, double, character, byte, boolean, yes_no, true_false) 

(2) length(可选):当type为varchar时,设置字段长度

(3) column (可选 - 默认为属性名): 主键字段的名字(省略则取name为字段名)。 

(4) unsaved-value (可选 - 默认为一个切合实际(sensible)的值): 一个特定的标识属性值,用来标志该实例是刚刚创建的,尚未保存。 这可以把这种实例和从以前的session中装载过(可能又做过修改--译者注) 但未再次持久化的实例区分开来。 

(5) access (可选 - 默认为property): Hibernate用来访问属性值的策略。 

如果 name属性不存在,会认为这个类没有标识属性。 

unsaved-value 属性在Hibernate3中几乎不再需要。 

还有一个另外的<composite-id>定义可以访问旧式的多主键数据。 我们强烈不建议使用这种方式。 

 

 

相关推荐