해결된 질문
작성
·
353
0
@Test
public void JpaEventBaseEntity() throws InterruptedException {
Member member = new Member("member1");
memberRepository.save(member); //@Prepersist
Thread.sleep(100);
member.setUsername("member2");
em.flush();
em.clear();
Member findMember = memberRepository.findById(member.getId()).get();
System.out.println("findMember.getCreateDate() = " + findMember.getCreateDate());
System.out.println("findMember.getUpdateDate() = " + findMember.getUpdateDate());
}
Thread.sleep을 해준 이유가 무엇인가요??
답변 1
1
안녕하세요. 유선목님, 공식 서포터즈 y2gcoder입니다.
Auditing 기능으로 입력된 생성일시와 수정일시의 시간 차이를 보여드리기 위해서입니다!
sleep을 넣어주지 않는다면 테스트코드는 빠른 시간 내에 엔티티를 저장후 값을 바꾼후 flush 하기 때문에 생성일시와 수정일시의 차이가 나지 않을 수 있습니다! 그래서 임의로 sleep을 줘서 @PrePersist 와 @PreUpdate의 실행 시간 차이가 유의미하게 나는 것을 볼 수 있습니다!
10분 30초 경부터 테스트 결과에 대해 말씀해주시고 계신게 그 부분입니다!
감사합니다.
이해했습니다 감사합니다 ㅎㅎ!