错误:org.hibernate.hql.internal.ast.ErrorCounter - 第1:45行:意外令牌:DESC从表中获取最后一条记录

时间:2016-09-09 17:42:53

标签: java spring hibernate hql

我正在尝试使用下面的hibernate查询从数据库中获取最后一条记录

//fetch the last data from a field in a table
Session session = _sessionFactory.getCurrentSession();
Query query = session.createQuery("select t.currentfile from file t DESC");
query.setMaxResults(1);
List<Object[]> rows = query.list();

for (Object[] row: rows) {
    System.out.println(" ------------------- ");
    System.out.println("current file: " + row[0]);
}

使用上面的hql我收到此错误:

ERROR: org.hibernate.hql.internal.ast.ErrorCounter - line 1:45: unexpected token
: DESC

可能出错?

2 个答案:

答案 0 :(得分:1)

Descending('DESC'或'desc')和Ascending('ASC'或'asc')只能与 order by 子句一起使用。

所以你的代码必须看起来像:

Query query = session.createQuery("select t.currentfile from file t 
  ORDER BY t.time_created DESC");

time_created只是一个示例字段,因为您没有添加表格中的字段或按降序排列的字段)

答案 1 :(得分:0)

您的查询错误。您必须在DESC之前放置ORDER BY yourSortAttribute。