簡體   English   中英

@CreatedBy如何在Spring Data JPA中運行?

[英]How does @CreatedBy work in Spring Data JPA?

我在實體屬性上使用了@CreatedDate ,我看到它在db中插入了日期。 我不明白Spring Data JPA中@CreatedBy注釋的目的是什么。

參考文檔中,我讀到:

我們提供@CreatedBy@LastModifiedBy來捕獲創建或修改實體的用戶

但是如何創建和使用這樣的用戶呢?

如果您已經參考了參考文檔,我建議您再閱讀兩個段落以了解有關AuditorAware使用AuditorAware以及如何使用AuditorAware :)

對於TL; 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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM