Parameter 'list1' not found. Available parameters are [list, collection]

注意:

你可以传递一个 List 实例或者数组作为参数对象传给MyBatis。当你这么做的时候,MyBatis会自动将它包装在一个Map中,用名称在作为键。List实例将会以“list”作为键,而数组实例将会以“array”作为键

public interface EmployeeMapperDynamicSQL {
	public List getEmpsByConditionForeach(List ids); // 使用foreach标签
}
@Test
	public void select04() throws IOException { // 测试foreach
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
		SqlSession openSession = sqlSessionFactory.openSession();
		try {
			EmployeeMapperDynamicSQL mapper = openSession.getMapper(EmployeeMapperDynamicSQL.class);
			
			List list = mapper.getEmpsByConditionForeach(Arrays.asList(1, 3, 5));
			for (Employee emp : list) {
				System.out.println(emp);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			openSession.close();
		}
	}

解决: 把collection="aa"修改为list,因为mybatis会自动封装在一个map中,而你以集合的方式传参数过去,map会以list作为key,所以将collection="aa"修改为list

你可能感兴趣的:(Mybatis)