如何解决Hibernate Envers 如何检查特定字段值是否已更新或更改
我正在将 hibernate-envers
与我的 mysql + springboot + jpa 一起使用,并且它按预期工作。
我正在使用 @Audited
注释审核一些字段,一切正常。
但是,我添加了一个当前未审核的新字段 indexedDate
。此字段将在 Elasticsearch 中成功同步/更新后更新。
在我的模型类 Account
中,在 jpa @PreUpdate
中,我将字段 lastUpdateDate
的值设置为当前日期和时间。
类模型如下所示:
class Account {
private String m_id;
private String m_fullName;
...
private Date m_indexDate;
private Date m_lastUpdateDate;
@Id
public String getId() {
return m_id;
}
@Audited
public String getFullName() {
return m_fullName;
}
public String getIndexDate() {
return m_indexDate;
}
public String getLastUpdateDate() {
return m_indexDate;
}
...
@PreUpdate
void preUpdate() {
// Only set last update date when index_date is not changed
if (!indexDateChanged()) {
setLastUpdateDate(new Date());
}
}
private boolean indexDateChanged() {
// TODO: Check if index_date value is changed
return false;
}
}
但是如果 indexDate
没有变化,我应该只更新/设置 lastUpdateDate。
目前,由于此 @PreUpdate
... 每当 indexDate
更新时,lastUpdateDate
也会更新。
如果我可以检查 indexDate
是否在 PreUpdate
内被更改,那么我可以保证当 indexDate
更新时(在成功的 elasticsearch 同步之后),lastUpdateDate
价值将保持不变。 lastUpdateDate
的值将在每次更新时自动设置,indexDate
更改除外。
我的问题是,我可以使用 hibernate envers 来检查 indexDate
的值是否改变了吗?
知道如何检查此值 (indexDate) 是否已更改吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。