5.1.13. 组件(component), 动态组件(dynamic-component)
<component>
元素把子对象的一些元素与父类对应的表的一些字段映射起来。 然后组件可以定义它们自己的属性、组件或者集合。参见后面的“Components”一章。
<component
name="propertyName"
class="className"
insert="true|false"
update="true|false"
access="field|property|ClassName"
lazy="true|false"
optimistic-lock="true|false"
unique="true|false"
node="element-name|."
>
<property ...../>
<many-to-one .... />
........
</component>
name : 属性名 |
|
---|---|
class (可选 - 默认为通过反射得到的属性类型):组件(子)类的名字。 |
|
insert : 被映射的字段是否出现在SQL的INSERT 语句中? |
|
update : 被映射的字段是否出现在SQL的UPDATE 语句中? |
|
access (可选 - 默认是 property ): Hibernate用来访问属性的策略。 |
|
lazy (可选 - 默认是 false ): 表明此组件应在实例变量第一次被访问的时候延迟加载(需要编译时字节码装置器) |
|
optimistic-lock (可选 - 默认是 true ):表明更新此组件是否需要获取乐观锁。换句话说,当这个属性变脏时,是否增加版本号(Version) |
|
unique (可选 - 默认是 false ):表明组件映射的所有字段上都有唯一性约束 |
其<property>
子标签为子类的一些属性与表字段之间建立映射。
<component>
元素允许加入一个<parent>
子元素,在组件类内部就可以有一个指向其容器的实体的反向引用。
<dynamic-component>
元素允许把一个Map
映射为组件,其属性名对应map的键值。 参见第 8.5 节 “动态组件 (Dynamic components)”.