对于 mysql,我写了一个类似的查询
SELECT * FROM mytable GROUP BY DATE(dateTimeField)
但是我无法使用JPQL中的
DATE()
函数。
有人知道如何解决这个问题吗?
如果您在后台使用 Hibernate,您可以尝试:
使用自定义功能创建您自己的方言
public class CustomPostgresqlDialect extends PostgreSQLDialect {
public CustomPostgresqlDialect() {
super();
registerFunction("truncate_date",
new SQLFunctionTemplate( StandardBasicTypes.TIMESTAMP, "DATE(?1)" ));
}
}
在
persistence.xml
中注册您的方言
<property name="hibernate.dialect" value="my.own.CustomPostgresqlDialect"/>
在 JPQL 中使用您的函数。
select p from Post p group by truncate_date(p.dateCreated)