Java Spring Mongo审核在@CreatedDate@CreatedBy处不起作用

Java Spring Mongo审核在@CreatedDate@CreatedBy处不起作用,java,spring-data-mongodb,auditing,Java,Spring Data Mongodb,Auditing,我正在使用Spring Mongo审计和@CreatedDate@CreatedBy不工作,但@LastModifiedDate和@LastModifiedBy工作正常 我在一个配置类上添加了@EnableMongoAuditing,还定义了AuditAware @Component("securityAuditorAware") public class SecurityAuditorAware implements AuditorAware<String> { @Overri

我正在使用Spring Mongo审计和@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);
 } 
}
当我保存文档时,它在createdOncreatedBy中都设置为null,但在modifiedOnmodifiedBy中都设置了正确的值


感谢您的帮助

如果您的实体没有继承持久化接口,您应该定义一个由@Version(org.springframework.data.annotation.Version)标记的字段

另一方面,如果您的实体继承
可持久化
接口,您应该实现逻辑接口来检测以前从未持久化过的实体

有关详细信息,您可以选中两个类:
persistententyisnewstrategy
persistenableisnewstrategy

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