property
元素为类定义了一个持久化的,JavaBean风格的属性。
name="propertyName"
column="column_name"
type="typename"
update="true|false"
insert="true|false"
formula="arbitrary SQL expression"
access="field|property|ClassName"
lazy="true|false"
unique="true|false"
not-null="true|false"
optimistic-lock="true|false"
generated="never|insert|always"
node="element-name|@attribute-name|element/@attribute|."
index="index_name"
unique_key="unique_key_id"
length="L"
precision="P"
scale="S"
/>
1
name: 属性的名字,以小写字母开头。
2
column (可选 - 默认为属性名字): 对应的数据库字段名。 也可以通过嵌套的元素指定。
3
type (可选): 一个Hibernate类型的名字。
4
update, insert (可选 - 默认为 true) : 表明用于UPDATE 和/或 INSERT 的SQL语句中是否包含这个被映射了的字段。这二者如果都设置为false 则表明这是一个“外源性(derived)”的属性,它的值来源于映射到同一个(或多个) 字段的某些其他属性,或者通过一个trigger(触发器)或其他程序生成。
5
formula (可选): 一个SQL表达式,定义了这个计算 (computed) 属性的值。计算属性没有和它对应的数据库字段。
6
access (可选 - 默认值为 property): Hibernate用来访问属性值的策略。
7
lazy (可选 - 默认为 false): 指定 指定实例变量第一次被访问时,这个属性是否延迟抓取(fetched lazily)( 需要运行时字节码增强)。
8
unique (可选): 使用DDL为该字段添加唯一的约束。 同样,允许它作为property-ref引用的目标。
9
not-null (可选): 使用DDL为该字段添加可否为空(nullability)的约束。
10
optimistic-lock (可选 - 默认为 true): 指定这个属性在做更新时是否需要获得乐观锁定(optimistic lock)。 换句话说,它决定这个属性发生脏数据时版本(version)的值是否增长。
11
generated (可选 - 默认为 never): 表明此属性值是否实际上是由数据库生成的。请参阅第 5.6 节 “数据库生成属性(Generated Properties)”的讨论。