2013-10-09 1 views
0

J'essaie de récupérer toute l'entité de l'entité TransactionE t où le mois de t.purchasedDate est égal au mois en cours.EJB QL data Erreur de syntaxe

Cependant, j'ai rencontré une erreur de syntaxe lors de l'exécution de mon code.

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

Query q = em.createQuery(query); 

Une aide s'il vous plaît? GetCurrentDate() est une fonction qui retourne la date du jour en cours au format "aaaa-MM-jj".

Ci-dessous est une requête que j'espérais réaliser. SELECT t de TransactionE t OU Mois (t.purchaseDate) = Mois ("06/10/2013")

Erreur: Causée par: Exception [EclipseLink-8025] (Eclipse persistance Services - 2.3.2 .v20111125-r10461): org.eclipse.persistence.exceptions.JPQLException Exception Description: Erreur de syntaxe lors de l'analyse de la requête [SELECT t FROM TransactionE t WHERE Mois (t.purchaseDate) = Month (getCurrentDate()), ligne 1, colonne 40 :. jeton inattendu [(]

+0

Essayer un guillemet de position –

+0

Salut, Vous voulez dire quelque chose comme ça? SELECT t FROM TransactionE t O WH mois (t.purchaseDate) = Month ('2013-10-09') Je viens d'essayer. Le guillemet simple n'a pas fonctionné –

+0

Quel serveur d'application utilisez-vous? Quelle bibliothèque JPA utilisez-vous? –

Répondre

0

Month pas est une fonction standard JPQL Essayez:.

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

Bonjour. J'ai essayé et j'ai eu cette erreur. Erreur de syntaxe lors de l'analyse de la requête [SELECT t FROM TransactionE t WHERE FUNC ('MOIS', t.purchaseDate) = FUNC ('MOIS', 2013-10-10)] –

Questions connexes