Hibernate unsaved-value注释

Szm*_*eby 5 java annotations hibernate

我想通过字段VERSION而不是字段ID强制Hibernate(4.2)检查对象持久性.下面的xml应该有效:

<id name="id" column="ID">
    <generator class="assigned" />
</id>
<version name="version" column="VERSION" unsaved-value="null" />
Run Code Online (Sandbox Code Playgroud)

但我想使用注释.这个java代码够用吗?

@Id
public String getId() {
    return this.id;
}

@Version
public Integer getVersion() {
    return this.version;
}
Run Code Online (Sandbox Code Playgroud)

如何指定unsaved-value标签?我没有找到任何注释.我已经读过某个地方,Hibernate足够聪明,可以猜测一个对象是否持久,但它并不太令人信服.如果我想使用-1而不是null,该怎么办?必须有办法实现这一点,不是吗?

<version name="version" column="VERSION" unsaved-value="negative" />
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.


编辑.Hibernate 3.6参考指南说:

"在Hibernate3中几乎从不需要unsaved-value属性,并且在注释中确实没有相应的元素."

和

"分配的生成器使Hibernate使用unsaved-value ="undefined".这会强制Hibernate转到数据库以确定实例是临时的还是分离的,除非有版本或时间戳属性,或者您定义了Interceptor.isUnsaved() ".

我相信@Version对我来说已经足够了.