2012-04-13 11 views
1

Wo ist mein Fehler?JPQL Datum zwischen Intervall

SELECT m FROM Message m WHERE m.tabId = :idTab AND BETWEEN :startDate AND :endDate ORDER BY m.id DESC 

ich diesen Fehler haben:

Exception Description: Syntax error parsing the query ... , line 1, column 63: unexpected token [BETWEEN]. 
Internal Exception: NoViableAltException([email protected][634:7: (n= NOT)?]) 

In meinem Java-Code ich habe:

// Exception line 
Query query = em.createQuery(queryBuilder.toString()); 
//// 
query.setParameter("idTab", idTablet); 
if (limit > 0) { 
    query.setMaxResults(limit); 
} 
if (dateFrom != null) { 
    query.setParameter("startDate", dateFrom, TemporalType.DATE); 
    if (dateTo == null) { 
    dateTo = new Date(); 
    } 
    query.setParameter("endDate", dateTo, TemporalType.DATE); 
} 
messages = (List<MessageEntity>) query.getResultList(); 
+0

Sind Sie sicher, dass es nicht SELECT * ist? – Ushox

Antwort

1

Sie sind keine Felder auswählen und Sie vermissen das Feld für Ihren aktuellen Vergleich . Versuchen Sie -

SELECT m.* 
FROM Message m 
WHERE m.tabId = :idTab 
AND date_field BETWEEN :startDate AND :endDate 
ORDER BY m.id DESC 
+0

Sie haben Recht, danke! – CeccoCQ

+0

Ich habe akzeptiert, danke! – CeccoCQ