0

这是我在 mysql 中的查询

SELECT DATEDIFF('2008-11-30','2008-11-29') AS DiffDate

如何转换为 Hibernate 查询语言

4

2 回答 2

2

您可以通过扩展mysql方言并使用注册它来实现此目的的一种方法registerFunction(String, SQLFunction)

public class CustomMySQL5InnoDBDialect extends MySQL5InnoDBDialect {

  public CustomMySQL5InnoDBDialect () {
    super();
    registerFunction( "datediff", new SQLFunctionTemplate( StandardBasicTypes.INTEGER, "datediff(?1, ?2)" ) );
 }

}
于 2012-11-09T09:11:02.830 回答
0

我不认为你可以将这个特定的 mysql 函数放入 JPA/HQL 中(如果你愿意,你仍然可以使用一些本机查询)。更好的方法是使用第三方库[Joda-time][1]来计算两个日期之间的天数。我真的不明白为什么我们应该为此使用数据库。

于 2012-11-09T09:06:36.963 回答