Pessoal,
O que eu estou fazendo de errado???
public List<StatusEquipamento> getStatusEquipamentoPeriodo(Date dateBegin, Date dateEnd) {
EntityManager em = getEntityManager();
try {
Query q = em.createQuery("select object (o) from StatusEquipamento o where "
+ "o.DATA between :" + dateBegin + " AND " + ":" + dateEnd)
.setParameter("dateBegin", dateBegin, TemporalType.DATE)
.setParameter("dateEnd", dateEnd, TemporalType.DATE);
return q.getResultList();
} finally {
em.close();
}
}
Olha o erro que está dando:
Internal Exception: MissingTokenException(inserted [@-1,0:0=’’,<6>,1:69] at Jun)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1378)
at br.com.mda.controler.StatusEquipamentoJpaController.getStatusEquipamentoPeriodo(StatusEquipamentoJpaController.java:152)
at Main.main(Main.java:38)
Caused by: Exception [EclipseLink-8024] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.JPQLException
Exception Description: Syntax error parsing the query [select object (o) from StatusEquipamento o where o.DATA between :Sun Jun 09 17:38:13 GMT-03:00 3912 AND :Mon Jun 10 17:38:13 GMT-03:00 3912], line 1, column 69: syntax error at [Jun].
Segue o código que chama o metodo:
public class Main {
private static StatusEquipamentoJpaController jpaController = null;
private static List resultadoPesquisa = null;
public static void main(String [] args){
Date data1 = new Date();
Date data2 = new Date();
data1.setDate(9);
data1.setMonth(5);
data1.setYear(2012);
data2.setDate(10);
data2.setMonth(5);
data2.setYear(2012);
resultadoPesquisa = getJpaController().getStatusEquipamentoPeriodo(data1, data2);
for (int i = 0; i < resultadoPesquisa.size(); i++) {
System.out.println("Resultado: " + resultadoPesquisa.get(i));
}
}
private static StatusEquipamentoJpaController getJpaController() {
if (jpaController == null) {
jpaController = new StatusEquipamentoJpaController(Persistence.createEntityManagerFactory("ControleEquipamentosPU"));
}
return jpaController;
}
}
Sds,
Maurijava