15
에서 IN 절에 정수 배열을 전달하는 방법을
기본적으로 내가 지금은 정수 전달할 수있는 방법에 붙어 아이디의 (정수)의 설정MyBatis로
인 IN 절을 포함하는 내 MyBatis로의 쿼리가 배열을이 IN 절에 추가하여 적절한 레코드를 가져옵니다. ID가 들어있는 String을 IN 절로 전달하면이 절이 예상대로 작동하지 않습니다.
의 MyBatis 방법 사용하여 주석
@Select(SEL_QUERY)
@Results(value = {@Result(property="id",column="ID")})
List<Integer> getIds(@Param("usrIds") Integer[] usrIds);
쿼리 아래
코드 샘플
select distinct ID from table a where a.id in (#{usrIds})
는 메서드 호출
Integer[] arr = new Integer[2];
arr[0] = 1;
arr[1] = 2;
mapper.getIds(arr)
이 작동하지 않습니다
는 MyBatis로 오류 어를 던졌습니다 나는 매퍼 방법을
를 호출 도중 어떤 제안은
팁을 주셔서 감사합니다. 여기를 살펴보고 여기에 공간을 업데이트하십시오. – Vivek
실제로 쿼리 문자열이 '
예, 주석을 사용하여 가능합니다.
postgresql을 사용하는 경우 in this post처럼 할 수 있습니다.
당신이 MySQL을 사용하는 경우이이 코드 샘플에서 변경 시도 :
쿼리 (MySQL을 사용)
의 MyBatis 방법 사용하여 주석
메서드 호출
출처
2012-02-09 04:40:00
정확히 무엇이 필요합니까? – deeshank
여기서 중요한 것은 FIND_IN_SET은 인덱스를 사용하지 않기 때문에이 버전은 IN 문보다 성능이 떨어질 수 있습니다. – Zack