如何在mybatis映射器中使用foreach
?我的意思是我应该发送什么参数?
例如我有这个选择语句
<select id="findObjectsWithIds" resultMap="SimpleObjectResult">
SELECT * FROM testschema."XSimpleTable"
WHERE ID in
<foreach item="item" index="index" collection="list"
open="(" separator="," close=")">
#{item}
</foreach>
</select>
我有方法接口
List<SimpleObject> findObjectsWithIds(List<String> ids);
我已经实现了界面
@Override
public List<SimpleObject> findObjectsWithIds(List<String> ids) {
SqlSession sqlSession = MyBatisSqlSessionFactory.openSession();
try {
SimpleMapper simpleMapper = sqlSession.getMapper(SimpleMapper.class);
return simpleMapper.findObjectsWithIds(ids);
} finally {
sqlSession.close();
}
}
当我试图跑 - 我有这个错误
如何正确使用foreach
?
答案 0 :(得分:2)
问题解决了。
我添加了注释param
List<SimpleObject> findObjectsWithIds(@Param("list") List<Integer> ids);
我还发送了String
个索引代表而不是Integer
。