EJB QL数据语法错误

时间:2013-10-09 14:13:23

标签: java sql ejb ejbql

我正在尝试从TransactionE t实体中检索所有实体,其中t.purchasedDate的月份等于当前月份。

但是,我的代码运行时遇到语法错误。

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”)

错误: 引起:Exception [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列:意外令牌[(]。

1 个答案:

答案 0 :(得分:0)

Month不是标准的JPQL函数。尝试:

SELECT t 
  FROM TransactionE t 
 WHERE FUNC('MONTH', t.purchaseDate) = FUNC('MONTH', CURRENT_DATE)