[SQL] ApacheCommons ListUtils partition
ArrayList 를 일정 크기로 분할할 때,
sublist(int fromIndex, int toIndex) 를 사용해도 되지만, 리스트 사이즈내에서 fromIndex, toIndex구하는 로직을 추가로 짜야한다.
Apache Commons 라이브러리의 partition 메서드를 사용하면 아주 간편하게 List를 사이즈에 맞게 쪼갤 수 있다.
ex) Oracle Select IN절 값이 복수인 쿼리에서 IN절 최대 허용값이 1000개 이므로,
List를 1000건씩 나누어 Select한다고 했을때, 아래와 같이 사용할 수 있다.
int batch_size = 1000; List<List<String>> batchMemberList = ListUtils.partition(memberList, batch_size); for(int i=0; i<batchMemberList.size(); i++){ targetList.addAll(couponMngDao.selectTarget(batchMemberList.get(i))); }
최근 댓글