2013-05-29 2 views
0

매개 변수로 HashMap을 사용할 수있는 DAO 메서드가 있습니다.문자열의 길이에 따른 IBatis 동적 쿼리

HashMap의 키는 검색 할 열의 이름입니다.

String []에는 검색 할 가능성이있는 값이 들어 있습니다.

String 배열의 길이가 1이면 where 절은 문자열 배열의 정확한 값과 일치합니다. String 배열의 길이가 2 인 경우 where 절은 문자열 배열의 두 값 사이에서 모든 값을 찾습니다.

Ibatis는 sqlMap xml 파일에서 배열의 길이를 결정하는 메커니즘을 갖고 있지 않습니다 (배열 길이에는 JavaBean getter/setter가 없으므로).

ibatis에서 조건부로 문자열 배열의 길이를 감지하고 정확한 일치 또는 BETWEEN 문으로 쿼리를 조정할 수 있습니까?

예를 들어, 키가 연령이고 값이 18이면 18 세의 모든 사용자가 반환됩니다. 그러나 키가 연령이고 값이 18과 23이면 18에서 23 사이의 모든 사용자가 반환됩니다.

처음에는 isEqual 태그가 유망 해 보였지만 getter/setter가 없으므로 array.length와 작동하지 않습니다. ibatis는 sqlMap에서 배열의 길이를 결정할 수 있습니까?

감사합니다.

답변

0

String을 대신 List에 넣기 위해 HashMap을 변환하기위한 java 코드를 작성했습니다. List와 Size는 List.size 메서드로 훨씬 잘 작동합니다.