これがmysqlの私のクエリです
SELECT DATEDIFF('2008-11-30','2008-11-29') AS DiffDate
Hibernateクエリ言語に変換する方法
mysql方言を拡張し、を使用して登録することでこれを実現する方法の1つ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]
、2 つの日付間の日数を計算するようなサードパーティ ライブラリを使用することです。これにデータベースを使用する理由がよくわかりません。