Open dongho108 opened 2 years ago
이 이슈에 대한 이유와 학습내용은 조만간 여기 코멘트에 달아놓겠습니다!
동시에 인터뷰를 신청하면 두개가 신청됐었습니다.
Interview
가 AvailalbeDateTime
의 Time 값을 복사해 생성했기 때문에
DB에 동시에 같은 시간으로 생성요청을 하면 그대로 들어갔습니다.Interview
가 AvailableDateTimeId
를 가지고 생성되고, unique 제약조건이 걸려있기 때문에 두개가 신청되지는 않습니다.그럼 동시에 신청이 들어온다면
used
검증 통과
private void validateUsedTime(final Interview interview) {
if (interview.getAvailableDateTime().isUsed()) {
throw new InterviewInvalidException(USED_BY_OTHER);
}
}
그러면 DB
에서 unique
가 터짐
@OneToOne
@JoinColumn(name = "available_date_time_id", unique = true)
private AvailableDateTime availableDateTime;
As-is
serializable
이 걸려있습니다.To-be
serializable
옵션 제거