我有这个 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/