

중복되는 data 값 중에 가장 먼저 해당하는 값을 가져온다. 위와 같이 길게 method 설정을 할 수 있다.

Entity에서 위의 네개의 값들이 전부 중복돼서 들어간다. --> 자동화를 하자.

component와 config를 생성한다.
@Configuration // 여기는 설정파일에 관한 것이 들어간다
@EnableJpaAuditing // Jpa 감시를 활성화 시키겠다
public class JpaConfig {
}
@Component
public class LoginUserAuditorAware implements AuditorAware<String> {
@Override
public Optional<String> getCurrentAuditor() {
return Optional.of("AdminServer");
}
}
AuditorAware을 생성하면 implements를 하라고 뜬다.
@EntityListeners(AuditingEntityListener.class)
Entity와 Auditing을 연결해주기 위해 Entity class에 위와 같이 annotation을 달아준다.
@CreatedDate
private LocalDateTime createdAt;
@CreatedBy
private String createdBy;
@LastModifiedDate
private LocalDateTime updatedAt;
@LastModifiedBy
private String updatedBy;
중복되는 4개의 data에 대해서 annotation을 달아주었다.
@Test
public void create(){
User user = new User();
user.setAccount("Auditing");
User newUser = userRepository.save(user);
}
setAccount만 설정해주었다.

그러나 DB에는 4개의 요소가 전부 자동적으로 들어간 것을 확인할 수 있다.
생성자를 만들 때 생성자가 매개변수의 개수에 따라서 여러 개를 생성하지 않아도 되게 하고, 생성자를 선언할 때 . 형태로 이어서 만들어줄 수 있게 하는 메소드
User userUsingBuilder = User.builder().account("임얼쑤").email("구글").build();
userRepository.save(userUsingBuilder);
User Entity에
@Builder를 추가하면 위와 같이 생성자를 간편하게 생성할 수 있다.
Builder패턴과 비슷하게 set에 대해서 연속적으로 걸어줄 수 있게 해주는 메소드
@Accessors(chain = true)
Entity에 chain pattern을 true로 걸어준다.
User userUsingBuilder = User.builder().account("임얼쑤").email("구글").build();
userRepository.save(userUsingBuilder);
userUsingBuilder.setAccount("힘").setPhoneNumber("01040431336");
userRepository.save(userUsingBuilder);