質問

私は、MySQLでDATEDIFFの構文は次のとおりと異なっているという問題があるHSQLDBでます:

mysql: datediff(date1,date2)
hsqldb: datediff(interval,date1,date2)

方言では、これらの問題を解決し、通常は休止状態、しかし私は、HibernateのためDATEDIFF制約を作成する方法を見つけることができていないようです。私は「決め打ち」のSQL文のDateDiff関数の書式に持っているので、それは、インメモリHSQLデータベースとのユニットテストから私を防ぐため、これが本当の迷惑です。

誰もがこの問題に関するアドバイスを持っている場合は、

それをいただければ幸いです。

役に立ちましたか?

解決

私は、最も簡単な解決策は、既存のHSQLDBの方言を拡張し、独自のカスタムHSQLDBの方言を作成することであると言うでしょう。次に、コンストラクタで、間隔は静的な値であろうことを条件とする、DATEDIFF(間隔、DATE1、DATE2)に翻訳するDATEDIFF(DATE1、DATE2)を処理する機能を登録します。このような何かます:

registerFunction( "datediff", new SQLFunctionTemplate( StandardBasicTypes.INTEGER, "datediff(interval, ?1, ?2)" ) );
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top