我想從我的管理器中獲取用戶數,從jsf端傳遞值。JSF,JPA應用程序中的SQL查詢錯誤。 javax.ejb.EJBException
//的重要組成部分的JSF
H:的outputText值=「#{bookProviderBean.getCoursesAddedByTP(101)}
//的重要組成部分的豆
public IBOOKProviderManager getBookProviderrManager() {
return bookProviderManager;
}
public long getCoursesAddedByTP(Integer bookProviderId){
return courseManager.getCoursesAddedByTP(bookProviderId);
}
//經理的重要組成部分
public long getCoursesAddedByTP(Integer bookProviderId){
Query query = this.em.createQuery(
" SELECT COUNT(*) AS total FROM Courses c WHERE c.book_provider_id = " +bookProviderId);
long coursesByTP = 0;
try {
coursesByTP = (Long) query.getSingleResult();
} catch (Exception e) {
e.getStackTrace();
}
return coursesByTP;
}
- 我也嘗試通過如下參數:
「SELECT COUNT(*)AS FROM courses WHERE book_provider_id =:tpID」); query.setParameter(「tpID」,bookProviderId);
這是所產生的誤差:java.lang.IllegalArgumentException異常:致
異常描述::語法錯誤解析[SELECT COUNT(*)AS總FROM課程而創造的EntityManager查詢時發生異常c WHERE c.book_provider_id = 101]。 [13,13]算術表達式中缺少左表達式。 [14,14]算術表達式中缺少正確的表達式。
感謝很多在JPQL查詢的語法
是什麼bookProviderId前值ü在查詢中使用? –
這不是JSF問題,請移除JSF標記。請記住,JPQL <> MYSQL:你不能使用(*)語法。 – perissf
該值來自JSF。 –
marcos82