2013-10-09 3 views
0

Я пытаюсь получить все сущности из объекта TransactionE t, где месяц t.purchasedDate равен текущему месяцу.EJB QL data Ошибка синтаксиса

Однако при запуске моего кода я столкнулся с синтаксической ошибкой.

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

Query q = em.createQuery(query); 

Любая помощь пожалуйста?

getCurrentDate() - это функция, которая вернет дату текущего дня в формате «yyyy-MM-dd».

Ниже представлен запрос, который я надеялся достичь. ВЫБОР т ОТ TransactionE т ГДЕ Месяц (t.purchaseDate) = Месяц ("2013-10-06")

Ошибка: Вызванный: Exception [EclipseLink-8025] (Eclipse, Постоянство услуги - 2.3.2 .v20111125-r10461): org.eclipse.persistence.exceptions.JPQLException Исключение Описание: Синтаксическая ошибка, анализирующая запрос [SELECT t FROM TransactionE t WHERE Месяц (t.purchaseDate) = Месяц (getCurrentDate()), строка 1, столбец 40 :. неожиданный маркер [(]

+0

попробуйте одинарную котировку на дату –

+0

Привет, Вы имеете в виду что-то вроде этого? SELECT t FROM TransactionE t WHERE Месяц (t.purchaseDate) = Месяц ('2013-10-09') Я просто попробовал. Одиночная цитата не работает –

+0

Какой сервер приложений вы используете? В какой библиотеке JPA вы используете? –

ответ

0

Month не является стандартной функцией JPQL Попробуйте:.

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

Привет. Я попытался, и я получил эту ошибку. Синтаксическая ошибка, анализирующая запрос [SELECT t FROM TransactionE t WHERE FUNC («MONTH», t.purchaseDate) = FUNC («MONTH», 2013-10-10)] –

Смежные вопросы