这是我在 mysql 中的查询
SELECT DATEDIFF('2008-11-30','2008-11-29') AS DiffDate
如何转换为 Hibernate 查询语言
您可以通过扩展mysql方言并使用注册它来实现此目的的一种方法registerFunction(String, SQLFunction)
public class CustomMySQL5InnoDBDialect extends MySQL5InnoDBDialect {
public CustomMySQL5InnoDBDialect () {
super();
registerFunction( "datediff", new SQLFunctionTemplate( StandardBasicTypes.INTEGER, "datediff(?1, ?2)" ) );
}
}
我不认为你可以将这个特定的 mysql 函数放入 JPA/HQL 中(如果你愿意,你仍然可以使用一些本机查询)。更好的方法是使用第三方库[Joda-time][1]
来计算两个日期之间的天数。我真的不明白为什么我们应该为此使用数据库。