timestamp

可选的<timestamp>元素指明了表中包含时间戳数据。 这用来作为版本的替代。时间戳本质上是一种对乐观锁定的一种不是特别安全的实现。当然, 有时候应用程序可能在其他方面使用时间戳。 

<timestamp
        column="timestamp_column"
        name="propertyName"
        access="field|property|ClassName"
        unsaved-value="null|undefined"
        source="vm|db"
        generated="never|always"
        node="element-name|@attribute-name|element/@attribute|."
/>
1

column (可选 - 默认为属性名): 持有时间戳的字段名。

2

name: 在持久化类中的JavaBeans风格的属性名, 其Java类型是 Date 或者 Timestamp的。

3

access (可选 - 默认是 property): Hibernate用于访问属性值的策略。

4

unsaved-value (可选 - 默认是null): 用于标明某个实例时刚刚被实例化的(尚未保存)版本属性值,依靠这个值就可以把这种情况和 已经在先前的session中保存或装载的脱管(detached)实例区分开来。(undefined 指明使用标识属性值进行这种判断。)

5

source (可选 - 默认是 vm): Hibernate如何才能获取到时间戳的值呢?从数据库,还是当前JVM?从数据库获取会带来一些负担,因为Hibernate必须访问数据库来获得“下一个值”,但是在集群环境中会更安全些。还要注意,并不是所有的Dialect(方言)都支持获得数据库的当前时间戳的,而支持的数据库中又有一部分因为精度不足,用于锁定是不安全的(例如Oracle 8)。

6

generated (可选 - 默认是 never): 指出时间戳值是否实际上是由数据库生成的.请参阅第 5.6 节 “数据库生成属性(Generated Properties)”的讨论。

注意,<timestamp><version type="timestamp">是等价的。并且<timestamp source="db"><version type="dbtimestamp">是等价的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值