javax.persistence.NoResultException: No entity found for query

       当使用查询语句查询实体时,用到getSingleResult()方法,如果无该实体,则会报错  “ No entity found for query ”。getSingleResult()方法本身如此,除非在不确保是否存在该实体的时候不调用该方法。

     解决办法:

           先调用getResultList()方法,判断返回列表是否为空,若为空,则实体不存在,返回null;若不为空,可调用getSingleResult()方法获取实体,或者直接
                     getResultList()。get(0);



  如:

           if(query.getSingleResult()!=null){
                //返回类型为List时不用强转,为什么????
                fq=(FavoriteQuestion) query.getSingleResult();
                return fq.getId();
            }

  改为:

    
            if(query.getResultList().size()!=0){
                fq=(FavoriteQuestion) query.getSingleResult();
                return fq.getId();
            }


发布了17 篇原创文章 · 获赞 1 · 访问量 7850
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章