我在使用 Spring MVC 的 Hibernate 中有以下 HQL。
List<Colour>list=session.createQuery("from Colour order by colourId desc")
.setFirstResult((currentPage-1)*rowsPerPage)
.setMaxResults(rowsPerPage).list();
它工作并从 Oracle 10g 中的颜色表返回一个行列表(实际上是在我可以理解的颜色实体 (POJO) 上操作)。
如果我需要检索列表字段怎么办,我正在尝试以下方法。
List<Colour>list=session.createQuery("colourId, colourName, colourHex from Colour order by colourId desc")
.setFirstResult((currentPage-1)*rowsPerPage)
.setMaxResults(rowsPerPage).list();
它以一个例外结束
java.lang.IllegalArgumentException: node to traverse cannot be null!
在一些文章中,提到以下版本的 HQL 应该(或可能)工作
List<Colour>list=session.createQuery("select colourId, colourName, colourHex from Colour order by colourId desc")
.setFirstResult((currentPage-1)*rowsPerPage)
.setMaxResults(rowsPerPage).list();
但不幸的是,它也对我不起作用。使用该方法执行本机 SQL 会起作用,但除非绝对必要,否则createSQLQuery()
我想坚持使用 HQL 的方法。createQuery()
如何在 HQL 中指定字段列表?