我正在寻找一种方法,即使没有属性发生变化,也可以使用Spring Data JPA将实体标记为脏。我的目标是增加实体的版本(根据@LastModifiedBy
)并更新我的审核属性(JDOHelper.makeDirty
等)。
对于JDO(EntityManager.lock()
)似乎有类似的东西,甚至可能{{1}},但我找不到任何方法来使用Spring Data JPA。有什么指针吗?
答案 0 :(得分:3)
我们在Spring Data JPA存储库的超类中使用了这个方法:
@Override
public TYP increaseVersion(TYP typ) {
em.lock(typ, LockModeType.OPTIMISTIC_FORCE_INCREMENT);
return typ;
}
这只会增加@Version属性。遗憾的是,Spring Data JPA不会更新审计属性。
更正:
@Autowired
private AuditingHandler auditingHandler;
void someMethod() {
auditingHandler.markModified(entity);
}
这似乎有效。