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);
}
这似乎有效。
我正在寻找一种使用 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);
}
这似乎有效。