반복해서 나타나는 Entity 변수 중 created 나 update에 관한 변수를 자동 지정 하는 방법은
1) 우선 configuration객체를 만들어야 함.
Jpa에 대해 감시 설정 하는 클래스를 생성하고
@Configuration 어노테이션과 @EnableJpaAuditing 를 붙임.
@Configuration
@EnableJpaAuditing //Jpa에 대해 감사 설정
public class JpaConfig {
}
2) Entity의
createdBy에는 @CreatedBy
updatedBy에는 @LastModifiedBy 를 어노테이션 지정한 뒤
@EntityListeners(AuditingEntityListener.class) 어노테이션 추가
@EntityListeners(AuditingEntityListener.class)
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) //데이터 베이스에 기본키 생성 위임. Mysql
private Long id;
private String account;
private String password;
private String status;
private String email;
private String phoneNumber;
private LocalDateTime registeredAt;
private LocalDateTime unregisteredAt;
@CreatedDate
private LocalDateTime createdAt;
@CreatedBy
private String createdBy;
@LastModifiedDate
private LocalDateTime updatedAt;
@LastModifiedBy
private String updatedBy;
//User 1 : N OrderGroup
@OneToMany(fetch = FetchType.LAZY,mappedBy = "user")
private List<OrderGroup> orderGroupList;
}
3) AuditorAware를 implements하는 class를 생성하고
@Component 어노테이션을 붙인 후에
getCurrentAuditor()를 Override하고 그때 return하는 값이
createdBy와 updatedBy에 들어감.
@Component
public class LoginUserAuditorAware implements AuditorAware<String> {
@Override
public Optional<String> getCurrentAuditor() { //현재의 감사자
return Optional.of("AdminServerNew");
}
}
'Spring' 카테고리의 다른 글
서비스 구현 정리. (0) | 2019.11.14 |
---|---|
@Builder, @Accessors (0) | 2019.11.14 |
연관 관계 설정. (0) | 2019.11.12 |
다양한 find 지원. (0) | 2019.11.10 |
@OneToMany (fetch type) , @ManyToOne (0) | 2019.11.10 |