5.6. 数据库生成属性(Generated Properties)

Generated properties指的是其值由数据库生成的属性。一般来说,如果对象有任何属性由数据库生成值,Hibernate应用程序需要进行刷新(refresh)。但如果把属性标明为generated,就可以转由Hibernate来负责这个动作。实际上。对定义了generated properties的实体,每当Hibernate执行一条SQL INSERT或者UPDATE语句,会立刻执行一条select来获得生成的值。

被标明为generated的属性还必须是 non-insertable和 non-updateable的。只有第 5.1.7 节 “版本(version)(可选)”第 5.1.8 节 “timestamp (可选)”第 5.1.9 节 “property”可以被标明为generated。

never (默认) 标明此属性值不是从数据库中生成。

insert - 标明此属性值在insert的时候生成,但是不会在随后的update时重新生成。比如说创建日期就归属于这类。注意虽然第 5.1.7 节 “版本(version)(可选)”第 5.1.8 节 “timestamp (可选)”属性可以被标注为generated,但是不适用这个选项…

always - 标明此属性值在insert和update时都会被生成。