쌓고 쌓다
최신순 정렬 테스트시 발생한 시간순 정렬 문제 본문
잘 돌아가던 최신순 조회 테스트 코드가...
갑자기 실패하기 시작한다??
반복문을 통해 게시글을 순서대로 DB에 잘 저장도 하고 있고 작성일을 출력해봐도
먼저 들어간 게시글이 더 빠른 시간으로 출력도 된다...
뭐가 문제일까?
Service단의 반환으로 받은 정렬된 게시글의 정보도 한번 출력해보자.
PageResponse<PosterResponse> pageResponse = posterService.getLocationPosters(newLocation.getId(), conditionRequest);
PageInfo pageInfo = pageResponse.getPageInfo();
List<PosterResponse> posters = pageResponse.getResults();
//then
...
for (int i = 0; i < posters.size(); i++) {
System.out.println("posters.get(i).getRegDate() = " + posters.get(i).getRegDate());
System.out.println("posters.get(i).getTitle() = " + posters.get(i).getTitle());
}
위와 같이 순서대로 잘 나올때도 있지만
역순으로 나올때도 있다.
잘보면 문제 답이 있다.
디비에서는 초 단위를 2자리까지만 저장하기에 우리가 정렬할때도 이 자리수 까지만 비교 계산한다.
그러니 초단위가 동일해서 일정한 결과를 보장 받지 못하고 있는 상황인 것이다.
시간을 i만큼 더하는 코드를 작성해서 UPDATE 쿼리를 날려주자.
시간차이를 크게 만들어서 일정한 테스트 코드 결과를 얻을 수 있다.
'프로그래밍 > spring' 카테고리의 다른 글
스프링의 트랜잭션 추상화 PlatformTransactionManager (1) | 2024.05.05 |
---|---|
커넥션 풀과 데이터 소스 (0) | 2024.05.05 |
@CreationTimestamp, LocalDateTime 시간 설정 방법 (0) | 2024.03.29 |
LogBack 운영 환경에 따라 로그 남기기 (0) | 2024.03.25 |
LogBack(Slf4j)로 로그 레벨에 따라 로그 파일 만들기 (0) | 2024.03.24 |
Comments