Java/Spring
JPA QueryDsl 에서 Group By Count 값 가져오기
체리필터
2018. 9. 28. 13:48
728x90
반응형
JPA, QueryDsl 쓰기 참 힘들다.
그래도 하나 하나 어렵게 해 나가고 있는데 오늘은 또 Group By한 Count 개수를 반환하는 것을 만든 삽질 내용을 올린다.
리파지토리 단 소스는 아래와 같다.
@Override
public QueryResults<Tuple> getBusinessTotalCount() {
QUser user = QUser.user;
return from(user).where(user.userType.eq(UserType.B2B)).groupBy(user.platform).select(user.platform, user.platform.count()).fetchResults();
}
그리고 가지고 온 내용을 가지고 맵으로 이쁘게 정렬해서 반환해 주면 된다.
public Map<String,Integer> getBusinessTotalCount() {
QueryResults<Tuple> queryResults = userQueryRepository.getBusinessTotalCount();
Map<String,Integer> returnMap = new HashMap<>();
List<Tuple> list = queryResults.getResults();
for (Tuple tuple : list) {
returnMap.put(tuple.get(0, String.class), tuple.get(1, Integer.class));
}
return returnMap;
}
코드만 놓고 보자면 별거 아닌데, 모르는 상태에서 찾아서 할려니 진도가 더디다. ㅠㅠ
728x90
반응형