Java 即使JPA实体不脏,我是否可以强制spring数据更新可审核字段?
我将Spring数据jpa用于审计。我基本上想要“触摸”我的实体——我想要更新@LastModifiedDate和@LastModifiedBy字段,即使我没有对对象进行任何更改 本质上,我希望将这两个字段改为“LastAccessedBy”和“LastAccessedDate” 是否有一种方法可以触发Spring data/JPA将实体写入DB(从而触发Spring数据审核模块),即使实体不是脏的Java 即使JPA实体不脏,我是否可以强制spring数据更新可审核字段?,java,spring,jpa,spring-data,auditing,Java,Spring,Jpa,Spring Data,Auditing,我将Spring数据jpa用于审计。我基本上想要“触摸”我的实体——我想要更新@LastModifiedDate和@LastModifiedBy字段,即使我没有对对象进行任何更改 本质上,我希望将这两个字段改为“LastAccessedBy”和“LastAccessedDate” 是否有一种方法可以触发Spring data/JPA将实体写入DB(从而触发Spring数据审核模块),即使实体不是脏的 或者,我唯一的选择是修改审核字段(例如:@LastModifiedDate),然后让spring
或者,我唯一的选择是修改审核字段(例如:@LastModifiedDate),然后让spring用更新的值覆盖它?行不会更新这些值吗?@WeareBorg不应该;如果是这样的话,我会认为这是一个错误。审核字段只应在对象被持久化时更新。如果对象没有被持久化(因为它不是脏的),字段就不会被更新。哦,我以为你只是想更新字段而没有这个问题。。我能想到的是,要么直接更新字段,要么在获取对象后触发。我希望一些用户可能更清楚。祝你好运。字段和注释有不同的用途,不要将其用于其他用途,因为这只会让人困惑。如果您想要
LastAccessedBy
等,那么就为这种情况创建注释/字段,但不要滥用不适合它的内容。改变行为的问题是,您首先需要修改Spring数据源。然后,这对我来说是一个主要问题,每一个其他的开发人员在查看您的代码时,看到这些注释,都会期望某种不再存在的行为。所以马丁是对的…:-)