我在实体属性上使用了@CreatedDate
,我看到它在db中插入了日期。我不明白Spring Data JPA中@CreatedBy
注释的目的是什么。
我们提供
@CreatedBy
,@LastModifiedBy
来捕获创建或修改实体的用户
但是如何创建和使用这样的用户?
答案 0 :(得分:16)
如果您已经参考了参考文档,我建议您阅读two more paragraphs以了解有关如何使用AuditorAware
的信息。 :)
答案 1 :(得分:2)
; DR
您的实体
@CreatedBy
private UUID modifyBy;
和您的SecurityAuditorAware
@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。