DBの情報で、作成者や作成日や最終更新者や最終更新日を自分で追加していたけど、 Springに該当の機能があったので、調べたときの備忘録
やることは簡単、2ステップ。
1. Configクラスを作る
@Configuration @EnableJpaAuditing public class JpaAuditorAwareConfig { @Bean public AuditorAware<UserEntity> auditorAware() { return new SpringSecurityAuditor(); } public static class SpringSecurityAuditor implements AuditorAware<UserEntity> { @Override public UserEntity getCurrentAuditor() { SecurityContext context = SecurityContextHolder.getContext(); Authentication authentication = context.getAuthentication(); if (authentication == null || !authentication.isAuthenticated()) { return null; } return (UserEntity) authentication.getPrincipal(); } } }
2. Entityに@CreateDateとかをつける
@NoArgsConstructor @AllArgsConstructor @Setter @Getter @Entity @EntityListeners(AuditingEntityListener.class) @Table public class FooEntity { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; @CreatedDate @Column(nullable = false) private LocalTime createdDate; // 作成日 @LastModifiedDate @Column(nullable = false) private LocalTime modifiedDate; // 最終更新日 @CreatedBy @OneToOne(fetch = FetchType.EAGER) @JoinColumn(name = "created_user_id") private UserEntity createdBy; // 作成者 @LastModifiedBy @OneToOne(fetch = FetchType.EAGER) @JoinColumn(name = "modifiyed_user_id") private UserEntity modifiedBy; // 最終更新者 }
以上!!
参考になる書籍
Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発
- 作者: 株式会社NTTデータ
- 出版社/メーカー: 翔泳社
- 発売日: 2016/07/21
- メディア: 大型本
- この商品を含むブログ (1件) を見る
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2017/12/20
- メディア: 単行本
- この商品を含むブログを見る
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2018/01/30
- メディア: 単行本
- この商品を含むブログを見る
はじめてのSpring Boot―スプリング・フレームワークで簡単Javaアプリ開発 (I・O BOOKS)
- 作者: 槙俊明
- 出版社/メーカー: 工学社
- 発売日: 2016/09/01
- メディア: 単行本
- この商品を含むブログ (1件) を見る