我写了一个查询:
<select id="fetchEndPointArn" parameterType="map" resultType="com.rohit.service.model.UserActive">
select userid,endpointarns from t_user_actives where sid=#{sid}
and (userid in
<foreach item="userid" index="index" collection="userid" open="(" separator="," close=")">
#{userid}
</foreach>
)
</select>我的DaoImpl:-
@Override
public List<UserActive> fetchEndPointArn(Map<String,String> map) {
List<UserActive> userActive=sqlSession.selectList("fetchEndPointArn",map);
return userActive;
}我传递的map包含:-
sid=10,userid=t10,t12我收到了一个异常提示:-
Error evaluating expression 'userid'. Return value (t10,t12) was not iterable发布于 2016-08-03 22:20:18
将参数类型更改为java.util.Map。将您的集合定义为collection="list" instead of collection="userid"。最后,让userid成为一个数组列表,如下所示
List userid = new ArrayList();
userid.add("t10");
userid.add("t12");
Map paramMap = new HashMap();
paramMap.put("sid",10);
paramMap.put("userid",userid);然后在您的xml中
<select id="fetchEndPointArn" parameterType="java.util.Map" resultType="com.rohit.service.model.UserActive">
select userid,endpointarns from t_user_actives where sid=#{sid}
and userid in
<foreach item="userid" collection="list" index="index" open="(" separator="," close=")">
#{userid}
</foreach>
</select>https://stackoverflow.com/questions/38737216
复制相似问题