我想通过字段VERSION而不是字段ID强制Hibernate(4.2)检查对象持久性。下面的xml应该可以工作:
<id name="id" column="ID">
<generator class="assigned" />
</id>
<version name="version" column="VERSION" unsaved-value="null" />
但我想使用注释。这个java代码足够吗?
@Id
public String getId() {
return this.id;
}
@Version
public Integer getVersion() {
return this.version;
}
如何指定unsaved-value标签?我没有为此找到任何注释。 我已经在某个地方读过,Hibernate很聪明,可以猜到一个对象是持久的还是没有,但它并不太令人信服。 如果我想使用-1而不是null,该怎么办?必须有办法实现这一目标,不是吗?
<version name="version" column="VERSION" unsaved-value="negative" />
感谢您的帮助。
被修改即可。 Hibernate 3.6参考指南说:
&#34;在Hibernate3中几乎从不需要unsaved-value属性,并且在注释中确实没有相应的元素。&#34;
和
&#34;指定的生成器使Hibernate使用unsaved-value =&#34; undefined&#34;。这会强制Hibernate转到数据库以确定实例是暂时的还是分离的,除非有版本或时间戳属性,或者您定义了Interceptor.isUnsaved()。&#34;
我相信@Version对我来说已经足够了。