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

Java 错误:org.hibernate.hql.internal.ast.ErrorCounter-第1:45行:从表中获取最后一条记录时出现意外标记:DESC,java,spring,hibernate,hql,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

我正在尝试使用下面的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]);
}

可能有什么问题?

您的查询是错误的。您必须将ORDER BY SortAttribute置于DESC之前。

降序('DESC'或'DESC')和升序('ASC'或'ASC')只能与ORDER BY子句一起使用

因此,您的代码必须如下所示:

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

time\u created
只是一个示例字段,因为您没有添加表中的字段或按降序排序的对象)

要排序的实体字段。DESC表示降序。如果不想对结果进行排序,只需删除DESC.session.createQuery(“按t DESC从文件顺序中选择t.currentfile”);你是说表中的最新条目?然后请发布您的表和实体的外观。我有一个名为file的表,其中有一个名为current files的字段。您必须添加一个属性。类似于session.createQuery(“通过t.currentfile DESC从文件顺序中选择t.currentfile”);这会给我currentfile列中的最新数据吗?好的,我遇到这个问题,无法解决路径t.currentfile。无法将意外标记转换为[Ljava.lang.Object;
Query query = session.createQuery("select t.currentfile from file t 
  ORDER BY t.time_created DESC");