[20200120] 합격하소서 프로젝트 에러로그 2

Dayeon myeong·2021년 1월 30일
0

합격하소서

목록 보기
2/7

에러사항 1

문제점

2개의 쿼리를 받아 요리조리 조합하여 여러 컬럼값이 쫘르륵 나타나야하는데 그 중 하나의 컬럼 값이 1차원 배열로 나타나야했다.

서버 단에서 처리하니 for문을 2번이나 돌려야해서 너무 느리다...

말로 설명이 어려우니..

아래와 같은 조회 결과가 있을 때 recruit_id가 1인 경우는 division이 3,1 2개가 나와

이를 1차원 배열로 [1,3]이라는 형태로 만들어야 한다.

에러 이미지

해결방법

mysql에서는 group_concat이라는 함수를 통해서 세로로 출력된 쿼리 결과를 하나의 컬럼값에 가로로 컴마 구분자를 줄 수 있다. 이때 반환되는 것은 string 형태를 만들어준다.

group concat 사용 이미지

이를 string으로 서버에서 받아 List형태로 변환해야 하는데

이를 해결하기 위해 employType을 컴마 구분자를 통해 list형태로 만들고,

람다식을 통해 모든 string을 integer 형태로 변환한다.



    private static List<Integer> convertToArray(String employType) {
        List<String> tmpString = Arrays.asList(employType.split(","));

        return tmpString.stream()
                .map(s-> Integer.valueOf(s))
                .collect(Collectors.toList());

    }

profile
부족함을 당당히 마주하는 용기

0개의 댓글