首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MyBatis/Ibatis :-关于Ibatis/Mybatis中查询的帮助

MyBatis/Ibatis :-关于Ibatis/Mybatis中查询的帮助
EN

Stack Overflow用户
提问于 2016-08-03 15:34:13
回答 1查看 641关注 0票数 0

我写了一个查询:

代码语言:javascript
复制
 <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:-

代码语言:javascript
复制
@Override
public List<UserActive> fetchEndPointArn(Map<String,String> map) {
    List<UserActive> userActive=sqlSession.selectList("fetchEndPointArn",map);
    return userActive;
}

我传递的map包含:-

代码语言:javascript
复制
sid=10,userid=t10,t12

我收到了一个异常提示:-

代码语言:javascript
复制
Error evaluating expression 'userid'.  Return value (t10,t12) was not iterable
EN

回答 1

Stack Overflow用户

发布于 2016-08-03 22:20:18

将参数类型更改为java.util.Map。将您的集合定义为collection="list" instead of collection="userid"。最后,让userid成为一个数组列表,如下所示

代码语言:javascript
复制
List userid = new ArrayList();
userid.add("t10");
userid.add("t12");
Map paramMap = new HashMap();
paramMap.put("sid",10);
paramMap.put("userid",userid);

然后在您的xml中

代码语言:javascript
复制
 <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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38737216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档