这里是我在MySQL查询休眠:转换MySQL查询DATEDIF到HQL查询
SELECT DATEDIFF('2008-11-30','2008-11-29') AS DiffDate
如何转换为Hibernate查询语言
这里是我在MySQL查询休眠:转换MySQL查询DATEDIF到HQL查询
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]
这样的第三方库来计算两个日期之间的天数。我不明白为什么我们应该为此使用数据库。
如何使用上面的代码 –
创建上面级,并与CustomMySQL5InnoDBDialect更新休眠configuaration而不是MySQL5InnoDBDialect注册它 –