2011-02-06 46 views
1

Eclipselink JPA 2.0で日付範囲のクエリを実行しようとしていますが、試行したすべてが失敗します。ネイティブSQL-クエリは次のようになります。Eclipselinkの日付範囲のクエリ(グループで)

SELECT booked FROM household_bookings WHERE YEAR(booked) = 2011 GROUP BY YEAR(booked) 

しかし、私は、私は私のために必要なすべてをやって、バックグラウンドでのEclipseLinkを持ったときに、ネイティブクエリを行うにはしたくありません。私はこれを試しました:

SELECT b FROM Booking b WHERE YEAR(b.booked) = '" + year + "' 

ここで、「year」はDateオブジェクトです。しかし、これは「予期しないトークンを[(]」を返します。

私はまた、ExpressionBuilderのを試してみましたが、同じエラー(「予期しないトークン[(]」)に走った。

日付を行う方法上の任意のチュートリアルがありますEclipseLinkを持つ範囲クエリ?

答えて

2

エラー(「Unexcpectedトークンを取得することはできませんEclipseLinkの中で、あなたがこれを定義するにはFUNC機能を使用する必要があるので。表現で

"SELECT b FROM Booking b WHERE FUNC('YEAR', b.booked) = '" + year + "'" 

JPQLで定義されYEAR関数は、ありません[(] "))トークンがないので、このエラーをデータベースから取得しますか?とにかく、式はgetFunction()とdatePart()をいくつかのデータベースで使用できるように定義しています。