HQL に精通している人 (私自身は初心者です) は、この質問に簡単に答えることができると確信しています。
私の Grails アプリケーションには、次のドメイン クラスがあります。
class Book {
org.joda.time.DateTime releaseDate //I use the PersistentDateTime for persisting via Hibernate (that use a DATETIME type for MySQL DB)
}
HQL クエリで、リリース日が範囲に含まれる書籍を取得したいdate1
..date2
たとえば、私は試しました:
DateTime date1, date2
...
def queryStr = "select * from Book as b where b.releaseDate > $date1 and b.releaseDate < $date2"
def res = Book.executeQuery(queryStr)
しかし、例外が...caused by: org.springframework.orm.hibernate3.HibernateQueryException: unexpected token:
発生しましたエラートークンは日付形式を指しています(たとえば2009-11-27T21:57:18.010+01:00
、またはFri Nov 27 22:01:20 CET 2009
)
また、date1 を Date クラスに変換しようとしましたが、成功しませんでした
では、正しい HQL コードは何ですか? patternForStyle メソッドを使用して特定の形式 (どれ?) に変換する必要がありますか?それとも別のクリーンな方法がありますか?
ありがとう、
ファビアン。