我想从我的管理器中获取用户数,从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