Проблема MyBatis с условием IN <foreach со списком внутри карты
Я должен построить условие IN, используя MyBatis, где нужно передать списокPARENT_VALUES
быть получены на основе цикла foreach ниже ....
Я пытался, но не смог решить эту проблему. Я не уверен, если
Переданные значения:
Map input = new HashMap();
input.put("somedata");
List inConditionList = new ArrayList();
inConditionList.add("P1");
inConditionList.add("P2");
input.put(inConditionList);
sqlSessionTemplate.selectList("getNameAgeDetails", input);
Требуемый SQL:
SELECT P.NAME, P.AGE
FROM PERSON_DETAILS P
WHERE SOMECOLUMN is NULL AND DATA IN
(SELECT DATA FROM PARENT_TABLE WHERE PARENT_VALUE IN ("P1, "P2"))
ORDER BY P.NAME
FETCH FIRST 10 ROW ONLY
MyBatis Mapper SQL:
Ниже приведена ошибка, которую я получаю при попытке запустить мои тестовые случаи:
### The error occurred while setting parameters
### SQL: SELECT P.NAME, P.AGE
FROM PERSON_DETAILS P
WHERE
SOMECOLUMN is NULL
AND DATA IN
(SELECT DATA
FROM PARENT_TABLE
WHERE PARENT_VALUE IN ?
### Cause: com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=PARENT_VALUE IN