停止增加hibernate版本列,因为未修改子项



我有两个实体,它们有一对一的关系Site和Address。这两个表都有hibernate版本列。我正在使用sitedao.save(siteEntity)进行保存,它同时保存站点和地址。

当我对站点实体字段执行更新操作并持久化时,由于地址表中lastModifiedAt列上的@UpdateTimestamp注释,站点和地址实体版本都在更新。此列使行变脏并增加版本列数据(lastModifiedAt来自BaseEntity(

如何避免地址列中的版本增量

您可以删除它们之间的CascadeType.MERGE,并分别保存这两个实体。然后,您可以进行查询,检查新地址是否与旧地址不同,然后保存地址以更新其版本。

我从下面的链接中得到了这个解决方案。https://docs.jboss.org/hibernate/orm/6.0/userguide/html_single/Hibernate_User_Guide.html#locking-乐观的在lastModifiedAt列上设置此注释@OptimisticLock(excluded=true(可以解决此问题。

最新更新