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
반응형