休眠标准组结果按日期从时间戳
Posted
技术标签:
【中文标题】休眠标准组结果按日期从时间戳【英文标题】:Hibernate criteria group results by date from timestamp 【发布时间】:2014-12-12 20:27:22 【问题描述】:我有一个带有时间戳列的表,并且想要创建 Hibernate 标准投影,以便仅按该时间戳列中的日期对我的结果进行分组(数据库中的结果是 YYYY-MM-DD HH:mm:ss)。
我知道我必须使用Projection.sqlGroupProjection
但不安静肯定很热这样做。
另外,是否可以为 mysql 和 Oracle 编写相同的投影?
【问题讨论】:
【参考方案1】:另外,如果您需要按该列排序,则需要为该列创建一个别名
Projections.alias(Projections.sqlGroupProjection(
"trunc(timestampField) as myDate", "myDate",
new String[] "myDate" ,
new Type[] StandardBasicTypes.DATE ), "myDateOrder"))
那么你可以使用:
criteria.addOrder(Order.asc("myDateOrder"));
注意:我的回答是基于 nuno 回答添加订单功能。
【讨论】:
【参考方案2】:您可以尝试在sqlGroupProjection
中使用date
函数:
Projections.sqlGroupProjection("date(timestampField) as myDate", "myDate", new String[] "myDate" , new Type[] StandardBasicTypes.DATE )
【讨论】:
这部分在 Oracle 上失败,但在 MySQL 上有效。在 Oracle 上,它用 trunc(timestampField) 编写,但它给了我错误 uknown identifier 您是否将 myDate 用于其他用途? (例如订购)以上是关于休眠标准组结果按日期从时间戳的主要内容,如果未能解决你的问题,请参考以下文章