<version>元素是可选的,表明表中包含附带版本信息的数据。 这在你准备使用 长事务(long transactions)的时候特别有用。(见后)
<version>
<version column="version_column" name="propertyName" type="typename" access="field|property|ClassName" unsaved-value="null|negative|undefined" generated="never|always" insert="true|false" node="element-name|@attribute-name|element/@attribute|." />
column
name
type
integer
access
property
unsaved-value
undefined
generated
never
insert
true
0
false
版本号必须是以下类型:long, integer, short, timestamp或者calendar。
long
short
timestamp
calendar
一个脱管(detached)实例的version或timestamp属性不能为空(null),因为Hibernate不管 unsaved-value被指定为何种策略,它将任何属性为空的version或timestamp 实例看作为瞬时(transient)实例。 避免Hibernate中的传递重附(transitive reattachment)问题的一个简单方法是 定义一个不能为空的version或timestamp属性,特别是在人们使用程序分配的标识符(assigned identifiers) 或复合主键时非常有用!