mysql - 使用 MySQL 5.5 在 Hibernate HQL 中从 Int 转换为 Long

标签 mysql hibernate hql

我有这个 HQL 查询,我需要从 floor(e.timestamp/(1000*60*60*24))*60*60*24 返回的值很长,但是使用cast()不起作用,因为mysql不接受BigInt或Long类型的强制转换。我找不到正确的方法来执行此操作。

SELECT new DayEvent(
e.apiProxyId, 
e.apiKey, 
e.methodId,
floor(e.timestamp/(1000*60*60*24))*60*60*24, 
sum(e.count), 
e.region)                        
FROM Event AS e 
WHERE e.timestamp <= :endTimestamp 
AND e.timestamp >= :startTimestamp 
GROUP BY floor(e.timestamp/(1000*60*60*24)), e.methodId, e.apiKey, e.region, e.apiProxyId`

最佳答案

Hibernate 支持 HQL 中的强制转换:

SELECT new DayEvent(
e.apiProxyId, 
e.apiKey, 
e.methodId,
cast(floor(e.timestamp/(1000*60*60*24))*60*60*24 as long), 
sum(e.count), 
e.region)                        
FROM Event AS e 
WHERE e.timestamp <= :endTimestamp 
AND e.timestamp >= :startTimestamp 
GROUP BY floor(e.timestamp/(1000*60*60*24)), e.methodId, e.apiKey, e.region, e.apiProxyId

关于mysql - 使用 MySQL 5.5 在 Hibernate HQL 中从 Int 转换为 Long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28575172/

相关文章:

mysql - magento 订单导出时出现相同 ID 错误

mysql - 组合框将依赖于另一个组合框的值

java - 在 JPA/Hibernate 中合并/重新附加而不更新数据库

java - 应使用插入 ="false"更新 ="false"进行映射

java - 关联表未映射 - Hibernate + netbeans

mysql - 从 MySQL 获取多列百分比

使用 Memcached 进行 Spring-Hibernate 缓存

bash - 将Oracle查询转换为配置单元

java - Hibernate HQL 多对一连接

mysql - 我可以使用别名或 const 作为 JSON_EXTRACT 函数的 JSON 键吗