@CreatedBy如何在Spring Data JPA中工作?

2022-09-03 17:42:56

我在实体属性上使用,我看到它将日期插入到数据库中。我不明白在Spring Data JPA中注释的目的是什么。@CreatedDate@CreatedBy

在我阅读的参考文档中

我们提供 ,以捕获创建或修改实体的用户@CreatedBy@LastModifiedBy

但是如何创建和使用这样的用户呢?


答案 1

如果您已经阅读了参考文档,我建议您再阅读两段,以了解以及如何使用 。:)AuditorAware


答案 2

对于 TL;DR

您的实体

@CreatedBy
private UUID modifyBy;

和您的安全AuditorAware

@Component
public class SecurityAuditorAware implements AuditorAware<UUID> {

    @Override
    public Optional<UUID> getCurrentAuditor() {

        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();

        if (authentication == null || !authentication.isAuthenticated()) {
            return Optional.empty();
        }

        return Optional.of(((MyCustomUser) authentication.getPrincipal()).getId());
    }
}

注意:您需要使用相同的数据类型,我使用UUID作为我的自定义用户ID。


推荐