如何使用hibernate获取所选表的最后一列?

时间:2017-07-26 06:57:45

标签: java hibernate spring-mvc oracle11g

我正在尝试按降序获取最后一列的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

1 个答案:

答案 0 :(得分:1)

在查询结束时您不需要分号,请使用正确的whitespacing。在FROM子句中,您不必在子查询和FROM关键字之间有空格。

注意:不要忘记最后提交/回滚事务并处理异常。我希望这只是一个向我们展示问题的草图,而不是来自现实世界应用程序的代码。