Я хочу, чтобы сравнить две даты в запросе - я получаю следующую ошибкуjava.lang.StackOverflowError при создании списка запросов
EJB Exception:: java.lang.StackOverflowError в org.eclipse.persistence .internal.jpa.EntityManagerImpl.createQuery (EntityManagerImpl.java:1603) at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery (EntityManagerImpl.java:1625) at sun.reflect.GeneratedMethodAccessor523.invoke (Неизвестный источник) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) по адресу java.lang.reflect.Method.invoke (Method.java:606) на weblogic.persistence.BasePersistenceContextProxyImpl.invoke (BasePersistenceContextProxyImpl.java:110) в weblogic.persistence.TransactionalEntityManagerProxyImpl.invoke (TransactionalEntityManagerProxyImpl.java:79) в weblogic.persistence.BasePersistenceContextProxyImpl.invoke (BasePersistenceContextProxyImpl.java:91) на com.sun.proxy. $ Proxy218.createQuery (Unknown Source) на model.Services.SessionEJBDossierBean.getDossierFindAllParDepartementDBTECHandUrgen (SessionEJBDossierBean.java:67) в model.Services.SessionEJBDossierBean.getDossierFindAllParDepartementDBTECHandUrgen (SessionEJBDossierBean.java:73) в модели. Services.SessionEJBDossierBean.getDossierFindAllParDepartementDBTECHandUrgen (SessionEJBDossierBean.java:73) на модели .Services.SessionEJBDossierBean.getDossierFindAllParDepartementDBTECHandUrgen (SessionEJBDossierBean.java:73) на model.Services.SessionEJBDossierBean.getDossierFindAllParDepartementDBTECHandUrgen (SessionEJBDossierBean.java:73) на model.Services.SessionEJBDossierBean.getDossierFindAllParDepartementDBTECHandUrgen (SessionEJBDossierBean.java:73) model.Services. SessionEJBDossierBean.getDossierFindAllParDepartementDBTECHandUrgen (SessionEJBDossierBean.java:73) на model.Services.SessionEJBDossierBean.getDossierFindAllParDepartementDBTECHandUrgen (SessionEJBDossierBean.java:73) на model.Services.SessionEJBDossierBean.getDossierFindAllParDepartementDBTECHandUrgen (SessionEJBDossierBean.java:73) на model.Services.SessionEJBDossierBean. getDossierFindAllParDepartementDBTECHandUrgen (SessionEJBDossierBean.java : 73) на model.Services.SessionEJBDossierBean.getDossierFindAllParDepartementDBTECHandUrgen (SessionEJBDossierBean.java:73)
вот мой код
public List<Dossier> getDossierFindAllParDepartementDBTECHandUrgen() {
Calendar myFiveDaysAhead;
myFiveDaysAhead = Calendar.getInstance();
myFiveDaysAhead.add(Calendar.DATE, 5);
TypedQuery<Dossier> query;
query =
em.createQuery("SELECT d FROM Dossier d WHERE d.depid=1 AND d.typeDossier = :tpd AND " +
"d.dateCreation < :fiveDaysAhead", Dossier.class);
query.setParameter("tpd", "Urgent");
query.setParameter("fiveDaysAhead", myFiveDaysAhead, TemporalType.TIMESTAMP);
return getDossierFindAllParDepartementDBTECHandUrgen();
}
Вы вызываете функцию 'getDossierFindAllParDepartementDBTECHandUrgen() 'сам по себе (то есть рекурсивно), без возможности остановить это (без условия завершения), следовательно, StackOverflowError. – Gosu