エンティティプロパティで@CreatedDate
を使用しましたが、dbに日付が挿入されていることがわかります。 Spring DataJPAの@CreatedBy
アノテーションの目的がわかりません。
リファレンスドキュメント で私は読んだ:
エンティティを作成または変更したユーザーをキャプチャするために、
@CreatedBy
、@LastModifiedBy
を提供します
しかし、そのようなユーザーを作成して使用するにはどうすればよいですか?
すでにリファレンスドキュメントにアクセスしている場合は、 あと2段落 を読んで、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());
}
}
注:同じデータ型を使用する必要があります。カスタムユーザーIDとしてUUIDを使用します。