Spring MVC を使用して、Hibernate に次の HQL があります。
List<Colour>list=session.createQuery("from Colour order by colourId desc")
.setFirstResult((currentPage-1)*rowsPerPage)
.setMaxResults(rowsPerPage).list();
それは機能し、Oracle 10g のカラー テーブル (実際には私が理解できる Color エンティティ (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 を実行することもできますが、どうしても必要でない限り、HQLを使用createSQLQuery()
したメソッドに固執したいと考えています。createQuery()
HQL でフィールドのリストを指定するにはどうすればよいですか?