Spring

@Configuration , @Create~ , @LastModified~

이무쿤 2019. 11. 14. 09:33
반응형

반복해서 나타나는 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");
}

}



반응형