java - Hibernate:如何选择除最后 N 行以外的所有行?

标签 java mysql hibernate

我正在尝试运行一个 Hibernate 查询,该查询返回除最后 5 行之外的所有行,所以我的 sql 查询如下:

session.createQuery("FROM Book 
WHERE id NOT IN(SELECT id FROM Book ORDER BY ID DESC LIMIT 5) 
ORDER BY title");

不幸的是,Hibernate 中不允许使用 LIMIT,所以我收到一条错误消息:

HTTP Status 500 - org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: LIMIT near line 1, column 78 [FROM models.Book WHERE id NOT IN(SELECT id FROM models.Book ORDER BY ID DESC LIMIT 5) ORDER BY title]

我该如何解决这个问题?

最佳答案

这里有答案

How do you do a limit query in HQL?

Limit was never a supported clause in HQL. You are meant to use setMaxResults().

关于java - Hibernate:如何选择除最后 N 行以外的所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39853873/

相关文章:

java - 如何使用 Java 将文件附加到电子邮件?

java - 使用 Java 读取/写入访问表

java - JPA Hibernate 子级的级联类型

mysql - 如何使用 Sequelize CLI 从 Sequelize 模型自动生成迁移?

mysql - 使用多列 MySQL 对行进行分组和排序

Hibernate 4——配置C3P0

java - 如何让 Hibernate 3 仅在调用其 getter 时检索值

java - Firebase 数据库检索多个 child 的总和

java - 哈希码实现

java - Char 数组与 Byte 数组该使用哪一个?