gpt4 book ai didi

java - Spring Mongo 审计不工作@CreatedDate @CreatedBy

转载 作者:行者123 更新时间:2023-12-02 09:08:05 32 4
gpt4 key购买 nike

我正在使用 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);
}
}

审核类(class)是:

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

当我保存文档时,它在 createdOncreatedBy 中都设置了 null,但在 modifiedOnmodifiedBy< 中设置了正确的值/strong>

感谢您的帮助

最佳答案

如果你的Entity没有继承Persistable接口(interface),你应该定义一个用@Version(org.springframework.data.annotation.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;
}

另一方面,如果您的实体继承 Persistable 接口(interface),您应该实现逻辑来检测实体以前从未被持久化。

有关更多信息,您可以检查两个类:PersistanceEntityIsNewStrategyPersistableIsNewStrategy

关于java - Spring Mongo 审计不工作@CreatedDate @CreatedBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59641703/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com