【发布时间】:2015-10-23 02:56:33
【问题描述】:
我想比较查询中的两个日期 - 我收到以下错误
EJB 异常::java.lang.StackOverflowError 在 org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1603) 在 org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1625) 在 sun.reflect.GeneratedMethodAccessor523.invoke(未知来源) 在 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(未知来源) 在 model.Services.SessionEJBDossierBean.getDossierFindAllParDepartementDBTECHandUrgen(SessionEJBDossierBean.java:67) 在 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) 在 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 。
标签: java jakarta-ee jpa calendar jpql