我正在尝试使用下面的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
可能出错?
答案 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。