我有一个每天有几个记录的表,每个记录都有一个代表日期时间的列。 我想选择每天的记录数,所以我想在JPQL中创建一个类似下面的查询:
SELECT COUNT(*)FROM ORDERS o GROUP BY TRUNC(o.ORDER_DATE)
不幸的是,在JPQL中没有像TRUNC ......这样的函数:( 我该怎么办?
非常感谢!
的Fabio
答案 0 :(得分:0)
我不确定它是否有效,但您是否使用方法功能? 它会像
Expression<Date> truncExpr = cb.function("TRUNC",Date.class,orders.get("orderDate"),"MM");
criteria.groupBy(truncExpr);
答案 1 :(得分:0)
解释JPQL查询时,Hibernate理解它所知道的任何函数。如果你使用的方言理解TRUNC,你会没事的。如果没有,请创建自定义方言以注册该TRUNC功能。
答案 2 :(得分:0)
我认为这应该是诀窍:
SELECT COUNT(*) FROM ORDERS o GROUP BY FUNC('TRUNC', o.ORDER_DATE)
答案 3 :(得分:0)
使用演员表!会起作用
$lines[] = new SoapVar($line,SOAP_ENC_OBJECT,"InvoiceLine","KashFlow");