5.1.4. id
被映射的类必须定义对应数据库表主键字段。大多数类有一个JavaBeans风格的属性, 为每一个实例包含唯一的标识。<id>
元素定义了该属性到数据库表主键字段的映射。
<id
name="propertyName"
type="typename"
column="column_name"
unsaved-value="null|any|none|undefined|id_value"
access="field|property|ClassName"
node="element-name|@attribute-name|element/@attribute|.">
<generator class="generatorClass"/>
</id>
name (可选): 标识属性的名字。 |
|
---|---|
type (可选): 标识Hibernate类型的名字。 |
|
column (可选 - 默认为属性名): 主键字段的名字。 |
|
unsaved-value (可选 - 默认为一个切合实际(sensible)的值): 一个特定的标识属性值,用来标志该实例是刚刚创建的,尚未保存。 这可以把这种实例和从以前的session中装载过(可能又做过修改--译者注) 但未再次持久化的实例区分开来。 |
|
access (可选 - 默认为property ): Hibernate用来访问属性值的策略。 |
如果 name
属性不存在,会认为这个类没有标识属性。
unsaved-value
属性在Hibernate3中几乎不再需要。
还有一个另外的<composite-id>
定义可以访问旧式的多主键数据。 我们强烈不建议使用这种方式。