[英]How do i group by date only from date time field in JPQL
对于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)
如果您使用的是EclipseLink,则可以使用JPQL中的FUNC()
函数来调用特定的数据库函数:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.