2014-11-25 4 views
0

я получил следующее эм запросов и исключения:EclipseLink не принимает DateString?

public List<Service> findServicesFromHelperBetween(long idPerson, String from, String to) throws DAOException { 
    List<Service> servicesFromHelperBetween = new ArrayList<Service>(); 
    try { 
     em.getTransaction().begin(); 
     servicesFromHelperBetween = em.createQuery("SELECT S FROM Service S WHERE S.helper.idPerson = " + idPerson + " AND S.date BETWEEN " + from 
                  + " AND " + to).getResultList(); 
     em.getTransaction().commit(); 
    } 
    catch (Exception e) { 
     em.getTransaction().rollback(); 
     throw ExceptionBuilder.findServiceFailedInDAO(e, Service.class); 
    } 
    return servicesFromHelperBetween; 
} 

Исключение:

Exception Description: Syntax error parsing [SELECT S FROM Service S WHERE S.helper.idPerson = 8 AND S.date BETWEEN 01.11.2014 AND 30.11.2014]. 
[71, 73] The identification variable '01' is not following the rules for a Java identifier. 
[86, 88] The identification variable '30' is not following the rules for a Java identifier. 

ответ

0

Попробуйте положить параметры одинарные кавычки

em.createQuery("SELECT S FROM Service S WHERE S.helper.idPerson = " + idPerson + " AND S.date BETWEEN '" + from 
                  + "' AND '" + to + "'").getResultList(); 
+0

Это помогает, спасибо большое! –

+0

@PascalWerner Добро пожаловать. –

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