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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章