3

TIME_TO_SEChibernate HQL 中是否有与MySQL 数据库具有相同功能的方法。

问这个是因为我想在我的 Oracle 数据库中使用这个 HQL 查询:

"select count(log) from Entry log where time_to_sec(lclTime) between '"
             + timeInSeconds + "' and '" + nextHour + "

我必须使用 hibernate HQL 使这个查询在 Oracle 和 MySQL 数据库中都可以执行。

4

1 回答 1

0

由于您使用的是特定于数据库的函数(本机 MySQL 查询),因此当您将数据库更改为 Oracle 时,它​​将不起作用。我认为明智的解决方法是使用 HQL。我发现您的查询不像您所写的那样可移植。

修复:
1. 将 MySQL 时间数据类型迁移到 Oracle 日期数据类型。
2. 将您的实体字段更改为 java.sql.Date 类型。

如果您遇到任何问题,请尝试使用 Hibernate User Type 来映射它。

在这种情况下,用户类型数据类型有很大帮助。

于 2012-10-30T13:34:18.220 回答