I am trying to get a sum from my DB with a query written in hibernate
x
@Query(value = "SELECT COALESCE(sum(charge),0) FROM initial_charge I INNER JOIN task T ON T.id = I.task_id "
+" INNER JOIN project_collab PC ON PC.collab_id=T.collaborator_id "
+ " INNER JOIN project P ON P.id = pc.project_id "
+ "where P.id = :idProject AND T.collaborator_id = :idCollab ", nativeQuery = true)
double sumInitialChargeByCollab(@Param("idProject") int idProject , @Param("idCollab") int idCollab);
The problem is, I get nothing in return. When I tried it directly in mysql I got this error :
ERROR 1054 (42S22): Unknown column 'pc.project_id' in 'on clause'
even though the column exists in the table
Advertisement
Answer
The query text cleared from external code dirt is:
SELECT COALESCE(sum(charge),0)
FROM initial_charge I
INNER JOIN task T ON T.id = I.task_id
INNER JOIN project_collab PC ON PC.collab_id=T.collaborator_id
INNER JOIN project P ON P.id = pc.project_id
where P.id = :idProject
AND T.collaborator_id = :idCollab
If case-dependence is enabled then PC
and pc
are two different names.
Convert ALL table/column/alias names to the same case (lower preferred).
PS. If charge
(by the way, what table does this field come from?) is not nullable then COALESCE is excess.