我正在尝试按降序获取最后一列的id。
返回最后一列的查询是
select id from(select id from challan
order by id desc) where ROWNUM=1;
现在我正在尝试使用hibernate做同样的事情。
public long getIdOnChallanTable() {
session = sessionFactory.openSession();
trans = session.beginTransaction();
Query<Object[]> query = session.createNativeQuery("select id
from(select id from challan order by id desc) where ROWNUM=1;");
Long value = 0L;
List<Object[]> list = query.getResultList();
for ( Object lst : list){
Object[] objects =(Object[]) lst;
value=(Long)(objects[0]);
}
return value;
}
,错误是:
2017-07-26 12:37:36 [http-nio-7080-exec-1] WARN :: SQL Error: 911, SQLState: 22019
2017-07-26 12:37:36 [http-nio-7080-exec-1] ERROR:: ORA-00911: invalid character
update error javax.persistence.PersistenceException:
org.hibernate.exception.SQLGrammarException: could not extract ResultSet
答案 0 :(得分:1)
在查询结束时您不需要分号,请使用正确的whitespacing。在FROM子句中,您不必在子查询和FROM关键字之间有空格。
注意:不要忘记最后提交/回滚事务并处理异常。我希望这只是一个向我们展示问题的草图,而不是来自现实世界应用程序的代码。