Entity Class의 첫 설계가 중요한 것 같다!
자연 상태의 그대로를 저장하는 것이 좋은 것 같다.
현재 우리의 위도/경도는 String으로 선언되어있다.
Repository에 있는 시작 위도/경도, 끝 위도/경도에 해당하는 범위에 있는 Store를 호출하고자 한다.
이 때 형변환이 필요하기 때문에 QueryDSL를 사용해보고자 한다.
현재 오류가 나는 QueryDSL 코드는
return queryFactory.selectFrom(store)
.where(store.latitude.castToNum(Double.class).goe(latStart),
store.latitude.castToNum(Double.class).loe(latEnd),
store.longitude.castToNum(Double.class).goe(lngStart),
store.longitude.castToNum(Double.class).loe(lngEnd))
//where할 때
.limit(pageable.getPageSize())
.offset(pageable.getOffset())
.fetch();
이다. Pageable을 사용하고, latStart, latEnd, lngStart, lngEnd 내에 있는 Store를 가져오려 했으나, QueryDSL 사용법이 능숙하지 못해 제대로 활용하지 못하고 있는 듯 하다.
검색을 해보니 성능에 문제가 생길 수 있다고 해서(위, 경도의 범위에 해당하는 Store를 찾아야 하므로) Column을 변경하는 형식으로 진행할 것 같다. BigDecimal이 잘 작동하는지 확인하기 위해서 컬럼을 BigDecimal로 수정하였다.
수행 결과
위와 같이 (25,22)의 값이 잘 들어가는 것을 확인할 수 있었다.
'Memorization' 카테고리의 다른 글
20220717 WIL (0) | 2022.07.20 |
---|---|
20220710 TIL&WIL (0) | 2022.07.11 |
20220708 TIL (0) | 2022.07.09 |
20220707 TIL (0) | 2022.07.08 |
20220705 TIL (0) | 2022.07.06 |