原因:org.hibernate.QueryException:无法解析 CAST 的请求类型:INT [ SELECT SUBSTRING(referenceComptable, 8, 14) AS seqNum, SUBSTRING(referenceComptable, 4,7) AS yearCegid, SUBSTRING(referenceComptable, 1,3) AS 期刊 FROM com.dso.model.comptabilite.cegid.EtapeJudiciaireLnkFactureActesHonoraires WHERE dateCegidGenerated BETWEEN :date AND :dateYearIntervalDate ORDER BY CAST(seqNum AS INT), CAST(yearCegid AS INT), CAST(journal AS INT) ASC]
HQL 查询:public ScrollableResults retrieveSequenceNumberForCegidGenerated(){
StringBuilder queryBuilder = new StringBuilder(" SELECT SUBSTRING(referenceComptable , 8, 14) AS seqNum, SUBSTRING(referenceComptable, 4,7) AS yearCegid, SUBSTRING(referenceComptable, 1,3) AS journal")
.append(" FROM EtapeJudiciaireLnkFactureActesHonoraires ")
.append(" WHERE dateCegidGenerated BETWEEN :date AND :dateYearIntervalDate ")
.append(" ORDER BY CAST(seqNum AS INT), CAST(yearCegid AS INT), CAST(journal AS INT) ASC ");
Query query = getFilteredCurrentSession().createQuery(queryBuilder.toString());
//SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
Date date = new Date();
LocalDate yearIntervalDate = LocalDate.now().minusDays(365);
Date dateYearIntervalDate = Date.from(yearIntervalDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
query.setParameter("date", date);
query.setParameter("dateYearIntervalDate", dateYearIntervalDate);
ScrollableResults referenceComptable = query.scroll(ScrollMode.FORWARD_ONLY);
query.setCacheMode(CacheMode.IGNORE)
.setFetchSize(500);
return referenceComptable;
}
当我尝试将其转换为 INT 时,它也不起作用。可以做些什么来将它从字符串转换为整数?
堆栈跟踪
原因:org.hibernate.QueryException:无法解析 CAST 的请求类型:INTEGER [ SELECT SUBSTRING(referenceComptable, 8, 7) AS seqNum, SUBSTRING(referenceComptable, 4,4) AS yearCegid, SUBSTRING(referenceComptable, 1,3) AS 期刊来自 com.dso.model.comptabilite.cegid.EtapeJudiciaireLnkFactureActesHonoraires WHERE dateCegidGenerated BETWEEN :date AND :dateYearIntervalDate ORDER BY CAST(SUBSTRING(referenceComptable , 8, 14) AS INTEGER), CAST(SUBSTRING(referenceComptable, 4,7) AS INTEGER ), 日志 ASC ] at org.hibernate.QueryException.generateQueryException(QueryException.java:120) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final] at org.hibernate.QueryException.wrapWithQueryString(QueryException .java:103) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final] 在 org.hibernate.hql.internal.ast.QueryTranslatorImpl。doCompile(QueryTranslatorImpl.java:218) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:142) ~ [hibernate-core-5.0.2.Final.jar:5.0.2.Final] 在 org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:115) ~[hibernate-core-5.0.2.Final .jar:5.0.2.Final] 在 org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:76) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final] 在org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:150) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final] at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan (AbstractSessionImpl.java:298) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final] at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final] at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1825) ~[hibernate-core-5.0.2 .Final.jar:5.0.2.Final] 在 com.dso.dao.comptabilite.cegid.impl.ReferenceComptableSequenceDAOImpl.retrieveSequenceNumberForCegidGenerated