0

これがmysqlの私のクエリです

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

Hibernateクエリ言語に変換する方法

4

2 に答える 2

2

mysql方言を拡張し、を使用して登録することでこれを実現する方法の1つ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]、2 つの日付間の日数を計算するようなサードパーティ ライブラリを使用することです。これにデータベースを使用する理由がよくわかりません。

于 2012-11-09T09:06:36.963 に答える