我使用@query在Spring启动Jpa中创建了一个查询。它就像
@Query(
"select id,sum(col_a),sum(col_b),
weekcal(to_date(?2,'mm/dd/yyyy'),weekof) as startofweek
from abc_table
where id=?1 and
weekof between to_date(?2,'mm/dd/yyyy') and to_date(?3,'mm/dd/yyyy')
group by weekcal(to_date(?2,'mm/dd/yyyy'),weekof),id")
List<object_abc> method_abc(String id,String fromdate,String todate)
当我运行我的测试用例时,我得到了这个错误跟踪:
[WARN] org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL错误: 979,SQLState:42000 [ERROR] org.hibernate.engine.jdbc.spi.SqlExceptionHelper - ORA-00979:不是 GROUP BY表达式
注意:weekcal是我在SQl中的用户定义函数,它接受两个日期参数并返回一个varchar。 weekof是列名。
可以通过将用户输入作为JPA中的参数进行分组,因为当我硬编码任何日期示例'01 -17-2016'而不是序数(?2)时,相同的查询工作正常。
提前致谢。
答案 0 :(得分:0)
@Query(“SELECT c.currency,SUM(c.population)FROM Country c WHERE c.continents GROUP BY c.currency HAVING COUNT(c)&gt; 1”)
int getCurrencyCount(@Param(“currency”)长货币,@ Param(“人口”)长人口,@ Param(“大陆”)字符串大陆)
你可以在这里找到更多的例子 JPA Query Structure