Spring Data JPA:将实体标记为脏以增加@Version

Spring Data JPA: Mark entity as dirty to increase @Version

我正在寻找一种使用 Spring Data JPA 将实体标记为脏的方法,即使没有更改任何属性。我的目标是增加实体的版本(根据 @Version)并更新我的审计属性(@LastModifiedBy 等)。

JDO (JDOHelper.makeDirty) 甚至 EntityManager.lock() 似乎都有类似的东西,但我找不到任何方法来使用 Spring Data JPA 来做到这一点。有什么指点吗?

我们在 Spring Data JPA 存储库的超级 class 中使用了这个方法:

@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);
}

这似乎有效。