我正在为数据库实体对象使用JPA和@Version属性。
事实是,我有一个领域" ENTITY_VERSION"在DB映射到@Version,但我在xml中有这个ENTITY_VERSION表示blob类型中的所有对象。
@Version值是在记录持久化后立即自行创建的:因此,xml将始终是脏的....
例如:
我尝试使用@PrePersist更新xml,获取@Version的值,但值总是旧值。
无论如何在持久化之前得到@Version值
答案 0 :(得分:2)
@Version字段仅在成功提交事务后递增。那是设计上的。但它递增。
您可以确定,事务成功的唯一方法是@Version字段在数据库和事务提交时的实体中是相同的。因此,以及版本将增加的事实,您也确切地知道在成功提交(X + 1)之后它将具有什么值。这是您应该首先放入xml的值。
但是要知道,如果事务回滚,你的xml也会变脏。