rem_16_0312 2017-07-05 08:59 采纳率: 33.3%
浏览 1045
已采纳

在做一个校验操作的时候遇到的错误,报错如下,貌似是说本希望返回一个结果或是空值,结果发现了15个结果

 Caused by: org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 15
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:66)
    at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:354)
    ... 76 more
接口中代码
 public Boolean hasThisKwordId(String KwordId)throws Exception;
 public String findLastKwordId(String parentid)throws Exception;
Controller中代码
@RequestMapping(value="/validate")
    @ResponseBody
    public Object validateKwords() throws Exception {
        PageData pd = new PageData();       
        Map<String,Object> map = new HashMap<String,Object>();
        pd = this.getPageData();
        if (kwordsService.findById(pd)!=null) {
            map.put("msg", "true");
        }else{
            map.put("msg", "false");
        }
        return AppUtil.returnObject(pd, map);
    }
    @RequestMapping(value="/findkwordid")
    @ResponseBody
    public Object findKwordId() throws Exception{
        PageData pd = new PageData();       
        Map<String,Object> map = new HashMap<String,Object>();
        pd = this.getPageData();
        String nextKwordid=getNextKwordId(pd.getString("parentid"));
        map.put("nextKwordid", nextKwordid);
        return AppUtil.returnObject(pd, map);
    }
        private String getNextKwordId(String parentid) throws Exception {
        String lastKwordId=kwordsService.findLastKwordId(parentid);
        String nextKwordId="";
        if (StringUtil.isNullOrEmpty(lastKwordId)) {
            nextKwordId=CodeConst.KWORDS_KWORDID_ROOT.equals(parentid)
                          ?CodeConst.KWORDS_KWORDID_START
                          :parentid+CodeConst.KWORDS_KWORDID_START;
        }else {
            if (lastKwordId.length()>CodeConst.KWORDS_KWORDID_INTERVAL) {
                nextKwordId=parentid+StringUtil.haoAddOne(lastKwordId.substring(lastKwordId.length()-CodeConst.KWORDS_KWORDID_INTERVAL,lastKwordId.length()),CodeConst.KWORDS_KWORDID_FORMAT);
            }else {
                nextKwordId=StringUtil.haoAddOne(lastKwordId, CodeConst.KWORDS_KWORDID_FORMAT);
            }
        }
        return nextKwordId;
    }
Mapper中代码
    <select id="hasThisKwordId" parameterType="String" resultType="int">
        select 
        count(0)
        from 
        <include refid="tableName"></include>
        where 
            KWORDID = #{KWORDID}
    </select>
    <select id="findLastKwordId" parameterType="String" resultType="String">
        select 
        KWORDID
        from 
        <include refid="tableName"></include>
        where PARENTID=#{PARENTID}
        order by KWORDID desc
        limit 0,1
    </select>
jsp中代码
    function validateKwordId(str){
            var parentid=$("#PARENTID").val()
            var result=false
            $.ajax({
                url:'kwords/validate',
                data:{PARENTID:parentid,KWORDID:str},
                async:false,
                dataType:'json',
                type:'post',
                success:function(resp){
                    if(resp.msg=='true'){
                        result=true
                    }
                }
            });
            return result;
        }
        function validateKwordName(str){
            var parentid=$("#PARENTID").val()
            var result=false
            $.ajax({
                url:'kwords/validate',
                data:{PARENTID:parentid,KWORDNAME:str},
                async:false,
                dataType:'json',
                type:'post',
                success:function(resp){
                    if(resp.msg=='true'){
                        result=true
                    }
                }
            });
            return result;
        }


        function changeParentid(){
            var pid=$("#PARENTID").val()
            $.ajax( {  
                 type : "POST",  
                 url : "kwords/findkwordid",  
                 data : "parentid=" + pid,  
                 success : function(data) {  
                    $("#KWORDID").val(data.nextKwordId);  
                    if(validateKwordName($("#KWORDNAME").val())){
                        $("#KWORDNAME").tips({
                            side:3,
                            msg:'主题名称重复,请更换',
                            bg:'#AE81FF',
                            time:2
                        });
                        $("#KWORDNAME").focus();
                    }
                 },
                 error : function() {  
                    $("#KWORDID").tips({
                        side:3,
                        msg:'主题代码变更失败',
                        bg:'#AE81FF',
                        time:2
                    });
                    $("#KWORDID").focus();  
                 }  
                });  
        }
  • 写回答

2条回答 默认 最新

  • 红橡树 2017-07-05 09:24
    关注

    同样条件下如果数据表中会有可能出现多条记录,那么可将返回结果改成list集合类型,获取到list结果后然后在做相关逻辑处理

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 11月29日

悬赏问题

  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的