【发布时间】:2018-08-04 20:27:38
【问题描述】:
要求:
将查询存储在数据库中,在查询中有一个 where 条件,即它调用数据库函数。
使用spring MVC我需要获取查询,传递参数并获取返回值。
这是查询:
SELECT COUNT(*)
FROM IncidentHdr ih, IncidentUser iu
WHERE ih.incidentId = iu.incidentHdr.incidentId
AND get_response_team_access (ih.incidentId, :perscode)
这里的 get_response_team_access 是一个返回整数的 DB 函数。查询工作正常,因为我们使用虚拟数据在 DB 中进行了测试。
到目前为止我尝试了什么:
@PersistenceContext
private EntityManager em;
@Override
public Long getAlertCount(String queryString, long persCode) throws DataAccessException {
Query q = em.createQuery(queryString);
q.setParameter("perscode", persCode);
return (long) q.getSingleResult();
}
抛出异常:
ERROR org.hibernate.hql.internal.ast.ErrorCounter - <AST>:1:293: unexpected AST node: (
antlr.NoViableAltException: unexpected AST node: (
【问题讨论】:
标签: spring spring-mvc spring-data spring-data-jpa jpql