작성
·
320
0
@EntityListeners(AuditingEntityListener.class)
@Getter
@MappedSuperclass
public class BaseEntity {
@CreatedDate
@Column(updatable = false)
private LocalDateTime createdTime;
@LastModifiedDate
private LocalDateTime modifiedTime;
}
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Getter
@Entity
public class test extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
}
@Test
public void 테스트() throws Exception {
//given
LocalDateTime startDatetime = LocalDateTime.of(LocalDate.now().minusDays(3), LocalTime.of(0,0,0));
System.out.println("startDatetime = " + startDatetime);
List<test> byCreatedTime = testRepository.findByCreatedTime(startDatetime);
System.out.println("*****************************************");
System.out.println("byCreatedTime = " + byCreatedTime);
System.out.println("*****************************************");
엔티티 구성을 위와 같이하고, 생성일자를 기준으로 검색하고 싶습니다.
테스트 코드에서 startDatatime 을 sout으로 로그를 보면 [startDatetime = 2021-02-19T00:00] 이렇게 남는데,
실제 쿼리 나가는걸 보면 [created_time='02/19/2021 00:00:00.000'] 이렇게 들어가서,
쿼리 결과가 나오질 않네요.
어느 부분을 고쳐야하는지 모르겠습니다...ㅠㅜ 답변 부탁드려요
답변 1
0
안녕하세요. jypark928님
이 문제는 사실 눈에 보이는 로그의 문제가 아닙니다.
@LastModifiedDate가 저장하는 날짜는 년월일 시분초, 이하 밀리세컨드까지 다 저장되는데,
조회하실 때는 년월일로만 조회했기 때문에 발생하는 문제입니다.
between 문법으로 조회해보시길 바랍니다.
감사합니다.