현재 회사 프로젝트에서는 넥사크로와 전자정부프레임워크 mybatis를 이용해 개발을 하고 있다.
현재 단 건의 사원의 이름으로만 조회하는 화면이 있는데,
이를 전체 사원으로도 조회하는 기능을 만들어 달라는 요구가 있었다.
현재의 쿼리는 기존에 paramMap이라는 변수에 하나의 Map을 조건으로 받아 쿼리를 날리고 있는 상황이였다..
콤보박스에 모든 사원의 이름의 정보를 가진 바인딩된 dataSet을 받아
그 dataSet을 자바에서, List<Map<String,Object>> dsEmpList라는 변수로 담았다.
그 후, paramMap에 searchAllEmp라는 key로 해당 dataSet List를 저장해줬다 즉..

paramMap.put("searchAllEmp",dsEmpList);//을 해줬음
그 후 해당 mybatis 쿼리를 다음과 같이 작성하였다
WHERE ~~~
AND EPNO IN
<foreach item="itemEmp" collection="searchAllEmp"
open="(" close=")" separator=",">
#{itemEmp.epCd}(사원 코드)
</foreach>
"collection"속성에는 list나 array과 같이 type을 사용해야한다고 하는데..
searchAllEmp List<Map<String,Object>>변수의 key값을 적어주어도 작동이 되는 것으로 보아
이를 자동으로 list타입으로 인식해주는 것 같다.
"item" 속성에 적어준 itemEmp는 List안의 요소인 Map<String,Object> 한 건 한 건을 의미한다
결과로
AND EPNO IN
(
'1번사원'
,'2번사원'
,'3번사원'
~~~
)
잘 들어가였다
Map을 조건으로 쿼리를 하는게 만능처럼 느껴졌다..
'spring > 개념' 카테고리의 다른 글
| Spring Mockito 테스트는 언제 사용해야 될까?? (0) | 2023.02.14 |
|---|
댓글