본문 바로가기

Spring

@Configuration , @Create~ , @LastModified~

반응형

반복해서 나타나는 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