如何在jpa中编写本机查询
当我按下搜索按钮时,出现以下错误: 发生错误: 异常[EclipseLink-4002](Eclipse持久性服务)- 2.3.2.v20111125-r10461):org.eclipse.persistence.exceptions.DatabaseException-Internal 异常:java.sql.SQLException:处缺少IN或OUT参数 索引::1错误代码:17041呼叫:从CRM_DAILY_工作表中选择*,其中 to_char(在'dd-MM-yy'上报告)=:在查询中报告: ReadAllQuery(referenceClass=CrmDailySheet sql=“选择*自 CRM_DAILY_SHEET to_char(报告日期:'dd-MM-yy')=:reportedOn) 代码:如何在jpa中编写本机查询,jpa,Jpa,当我按下搜索按钮时,出现以下错误: 发生错误: 异常[EclipseLink-4002](Eclipse持久性服务)- 2.3.2.v20111125-r10461):org.eclipse.persistence.exceptions.DatabaseException-Internal 异常:java.sql.SQLException:处缺少IN或OUT参数 索引::1错误代码:17041呼叫:从CRM_DAILY_工作表中选择*,其中 to_char(在'dd-MM-yy'上报告)=:在查
public Listsearchres()引发异常{
SimpleDataFormat ddMMMyyFormat=新的SimpleDataFormat(“日/月/年”);
日期d1=searchsht.getReportedOn();
字符串日期到字符串=ddMMMyyFormat.format(d1);
返回crmsrvc.searchDailysht(日期字符串);
}
试一试{
Query Query=em.createNativeQuery(“从CRM\u日报表中选择*
WHERE to_char(于'dd-MM-yy')=:reportedOn,CrmDailySheet.class报告);
setParameter(“reportedOn”,reportedOn);
Listres=query.getResultList();
返回res;
}最后{
em.close();
}
有人能找到解决方案吗?您正在尝试将JPQL参数语法(即“
:reportedOn
”)用于本机查询。尝试改用?
并按位置设置参数值,例如:
Query query = em.createNativeQuery("SELECT * FROM CRM_DAILY_SHEET
WHERE to_char (reported_on,'dd-MM-yy') = ?", CrmDailySheet.class);
query.setParameter(1, reportedOn);
请看,至少您可以正确标记您的问题。如果您在mysql或sqlserver中运行查询,它运行正常吗?
Query query = em.createNativeQuery("SELECT * FROM CRM_DAILY_SHEET
WHERE to_char (reported_on,'dd-MM-yy') = ?", CrmDailySheet.class);
query.setParameter(1, reportedOn);