0

t.purchasedDate の月が現在の月と等しい TransactionE t エンティティからすべてのエンティティを取得しようとしています。

しかし、コードを実行すると構文エラーが発生しました。

String query = "SELECT t FROM TransactionE t WHERE Month(t.purchaseDate) = Month(" + getCurrentDate()+")";

Query q = em.createQuery(query);

何か助けてください。

getCurrentDate() は、現在の日付を「yyyy-MM-dd」形式で返す関数です。

以下は、私が達成したいと思っていたクエリです。 SELECT t FROM TransactionE t WHERE Month(t.purchaseDate) = Month("2013-10-06")

エラー : 原因: 例外 [EclipseLink-8025] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.JPQLException 例外の説明: クエリを解析する構文エラー [SELECT t FROM TransactionE t WHERE Month (t.purchaseDate) = Month(getCurrentDate())、1 行目、40 列目: 予期しないトークン [(].

4

1 に答える 1

0

Monthnot は標準の JPQL 関数です。試す:

SELECT t 
  FROM TransactionE t 
 WHERE FUNC('MONTH', t.purchaseDate) = FUNC('MONTH', CURRENT_DATE)
于 2013-10-09T14:48:50.323 に答える