我的第一个问题!
所以我的查询在数据库中工作正常,但是当我调用运行查询的methid时,会抛出异常。下面是代码。
@Override
public String lastID() {
String x = "SELECT TICKETNO FROM TICKET ORDER BY TICKETNO DESC";
return (String) em.createQuery(x).getResultList().get(0);
}
这是异常的一部分
Caused by: Exception [EclipseLink-0] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.JPQLExceptionException Description: Syntax error parsing [SELECT TICKETNO FROM TICKET ORDER BY TICKETNO DESC].[28, 28]An identification variable must be provided for a range variable declaration.
答案 0 :(得分:0)
据我所知,你的String变量“x”包含一个SQL语句(因为你在数据库中运行它)。但是当您使用createQuery方法创建Query时,必须使用JPQL表达式作为参数:Oracle Docs
因此,您应该更改x变量的内容以包含JPQL表达式,或者您应该使用createNativeQuery方法:
return (String) em.createQuery(x).getResultList().get(0);
我希望有所帮助。