이거 때문에 진땀을 쏟았다……
검색 결과도 거의 없고…
프로젝트에서 JPA 를 사용하는데 여러 조건의 다수의 컬럼들을 가져올 경우가 있어,
nativeQuery 를 사용해야 하는 상황이었다.
public interface FavorRepository extends JpaRepository<Favor, Long> {
@Query(value = "select f.place_id, count(*) as CNT " +
"from favor f " +
"where f.status = 1 " +
"group by f.place_id " +
"order by CNT desc LIMIT 10;", nativeQuery = true)
List<HashMap<Object, Object> findFavorRank();
}
다수의 컬럼을 가져올 때 해당 컬럼들은 dto 에도 매핑되지 않는 값 일 때가 있다.
단순히 hashMap 으로 가져오면 되겠다고 생각했지만
org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap 와 같은 오류가 발생하게 되었다.
구글링을 해보면 이런 경우 매핑 받고자 하는 컬럼들을 아래와 같이 interface 로 받아오라는 말들이 많았다.
ex) 매핑하고자 하는 컬럼명이 place_id 인 경우에는 getPlaceId();