jpa 동적 쿼리(with Sort)
•
orderBy는 아래 두 방식으로 사용 가능하다.
◦
1번
List<Application> a = findAllByOrderByCreatedAtDesc();
JavaScript
복사
◦
2번
List<Application> a = findAll(Sort.by(Sort.Direction.DESC, "createdAt"));
JavaScript
복사
•
나는 2번 방식을 택했다.
◦
querydsl을 사용한 것처럼 메서드를 호출할 때 필요한 정렬 조건을 동적으로 지정할 수 있게 되기 때문이다.
시간 측정 테스트코드
에러 코드
•
해결
◦
코드를 위에서 아래로 변경해 시간 민감도를 줄임
▪
전
// when
LocalDateTime beforeCreatedAt = LocalDateTime.now();
Application savedApplication = applicationRepository.save(application);
LocalDateTime afterCreatedAt = LocalDateTime.now();
// then
assertTrue(savedApplication.getCreatedAt().isAfter(beforeCreatedAt));
assertTrue(savedApplication.getCreatedAt().isBefore(afterCreatedAt));
JavaScript
복사
▪
후
Duration duration1 = Duration.between(beforeCreatedAt, savedApplication.getCreatedAt());
assertTrue(duration1.getSeconds() >= 0 && duration1.getSeconds() <= 1);
Duration duration2 = Duration.between(savedApplication.getCreatedAt(), afterCreatedAt);
assertTrue(duration2.getSeconds() >= 0 && duration2.getSeconds() <= 1);
JavaScript
복사