Dev*_*per 4 java auditing spring-data-mongodb
我正在使用 Spring Mongo Auditing 和 @CreatedDate @CreatedBy 不起作用,但 @LastModifiedDate 和 @LastModifiedBy 工作正常。
我在配置类上添加了 @EnableMongoAuditing,并定义了 AuditAware。
@Component("securityAuditorAware")
public class SecurityAuditorAware implements AuditorAware<String> {
@Override
public Optional<String> getCurrentAuditor() {
return Optional.ofNullable(SecurityUtils.getUserPrincipal()).map(AuthenticatedUser::getIssuer);
}
}
Run Code Online (Sandbox Code Playgroud)
审核类别为:
@Document
public class Template {
@Id
private UUID id = UUID.randomUUID();
@CreatedDate
private Date createdOn;
@LastModifiedDate
private Date modifiedOn;
@CreatedBy
private String createdBy;
@LastModifiedBy
private String modifiedBy;
}
Run Code Online (Sandbox Code Playgroud)
当我保存文档时,它在createdOn和createdBy中都放入了null,但在modifiedOn和modifiedBy中都放入了正确的值
谢谢您的帮助
小智 6
如果你的Entity没有继承Persistable接口,你应该定义一个用(org.springframework.data.annotation.Version)标记的字段@Version。
@Document
public class Template {
@Id
private UUID id = UUID.randomUUID();
@CreatedDate
private Date createdOn;
@LastModifiedDate
private Date modifiedOn;
@CreatedBy
private String createdBy;
@LastModifiedBy
private String modifiedBy;
@Version
private Integer version;
}
Run Code Online (Sandbox Code Playgroud)
另一方面,如果您的实体继承Persistable接口,您应该实现逻辑来检测实体以前从未被持久化。
有关更多信息,您可以检查两个类:PersistentEntityIsNewStrategy和PersistableIsNewStrategy
| 归档时间: |
|
| 查看次数: |
5013 次 |
| 最近记录: |