企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 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)(可选)”](../Text/pr01_split_000.html#mapping-declaration-version "5.1.7\. 版本(version)(可选)"),[第 5.1.8 节 “timestamp (可选)”](../Text/pr01_split_000.html#mapping-declaration-timestamp "5.1.8\. timestamp (可选)")和[第 5.1.9 节 “property”](../Text/pr01_split_000.html#mapping-declaration-property "5.1.9\. property")可以被标明为generated。 `never` (默认) 标明此属性值不是从数据库中生成。 `insert` - 标明此属性值在insert的时候生成,但是不会在随后的update时重新生成。比如说创建日期就归属于这类。注意虽然[第 5.1.7 节 “版本(version)(可选)”](../Text/pr01_split_000.html#mapping-declaration-version "5.1.7\. 版本(version)(可选)")和[第 5.1.8 节 “timestamp (可选)”](../Text/pr01_split_000.html#mapping-declaration-timestamp "5.1.8\. timestamp (可选)")属性可以被标注为generated,但是不适用这个选项... `always` - 标明此属性值在insert和update时都会被生成。