當使用查詢語句查詢實體時,用到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();
}