java - ORDER BY 使用 Criteria API

标签 java hibernate sql-order-by hql

当我编写 HQL 查询时

Query q = session.createQuery("SELECT cat from Cat as cat ORDER BY cat.mother.kind.value");
return q.list();

一切都很好。但是,当我写一个标准时

Criteria c = session.createCriteria(Cat.class);
c.addOrder(Order.asc("mother.kind.value"));
return c.list();

我得到一个异常 org.hibernate.QueryException: could not resolve property: kind.value of: my.sample.data.entities.Cat

如果我想使用 Criteria and Order,我应该如何表达我的“order by”?

最佳答案

您需要为 mother.kind 创建一个别名。你这样做是这样的。

Criteria c = session.createCriteria(Cat.class);
c.createAlias("mother.kind", "motherKind");
c.addOrder(Order.asc("motherKind.value"));
return c.list();

关于java - ORDER BY 使用 Criteria API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1780129/

相关文章:

php - 在 MySQL/PHP 中排序行的正确日期和时间格式是什么?

ruby-on-rails - Rails Active Admin 如何使用 2 列(来自关联的 1 列)进行 config.sort_order

java - Firebase 数据库搜索查询无法正常工作

sql - 在 native sql 查询中使用 IN 子句

java - 使用多线程从mysql表读取时如何限制记录数

java - 使用 Hibernate 映射整数列表

hibernate - 如何在 primefaces 中上传文件时传递参数

C# 列表排序问题

Java 8 由于多重继承而无法实现两个接口(interface)

java - 循环链表以及从节点内部访问上一个/下一个