今天碰到的以为非法问题

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyR

List<Map> message= (List<Map>) itTvLiveMessageService.seachTvMessage(id);
List<TTvLiveMessage> newMessage=new ArrayList<TTvLiveMessage>();
if(message!=null){
    for (int i=0;i<message.size();i++){
        TTvLiveMessage tt=new TTvLiveMessage();
        tt.setTime((Date) message.get(i).get("time"));
        tt.setTvId((Integer) message.get(i).get("TvId"));
        tt.setMessage((String) message.get(i).get("message"));
        tt.setMember((String) message.get(i).get("member"));
        tt.setId((Integer) message.get(i).get("id"));
        tt.setAvater((String) message.get(i).get("avater"));
        tt.setM_nick((String) message.get(i).get("m_nick"));
        if(0!=(Integer) message.get(i).get("feedId")){
            tt.setFeedId((Integer) message.get(i).get("feedId"));
            tt.setFeedName(itTvLiveMessageService.seachNickName((Integer) message.get(i).get("feedId")));//出错
            System.out.println(message.get(i).get("feedId").toString());
        }
        newMessage.add(tt);
    }
}

以上一段代码,总是在调用sql返回参数的时候出了问题,检查了下sql,发现我返回的String类型。

@Select("SELECT t3.m_nick'feedName' \n" +
        "FROM t_tv_live_message t1 \n" +
        "LEFT JOIN t_tv_live_message t2 ON t1.feedId=t2.id \n" +
        "LEFT JOIN t_member t3 ON t2.member=t3.m_id \n" +
        "WHERE t1.feedId=#{id}")
String seachTvNickName(@Param("id") int id)

但是查询出的数据为多个数组类型。在select 加个去重DISTINCT

@Select("SELECT DISTINCT t3.m_nick'feedName' \n" +
        "FROM t_tv_live_message t1 \n" +
        "LEFT JOIN t_tv_live_message t2 ON t1.feedId=t2.id \n" +
        "LEFT JOIN t_member t3 ON t2.member=t3.m_id \n" +
        "WHERE t1.feedId=#{id}")
String seachTvNickName(@Param("id") int id)

问题解决

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值