hibernate - HQL Hibernate 排序依据

标签 hibernate grails hql

我有一个复杂的查询(我已经为这个问题简化了),这需要我使用 findAll、findBy 等之外的方法。
有多个实体与一般形式结合在一起......
PackageDelivery有一个 customer_id链接到 Customer 的列.我需要按 PackageDelivery.customer.lastName 排序结果;
目前我正在使用createSQLQuery得到结果。由于客户实体是由 Hibernate 而不是我的 native SQL 查询拉入的,所以我不能只通过 package_delivery.customer.last_name 添加订单.有没有办法按实体属性排序 Hibernate 从 native SQL 查询中提取?

select * from PackageDelivery 
inner join PackageContents
left join  ProductBillingInfo

添加了相当多的条件和细节,但这是一般的想法。

PackageDelivery 有一个链接到客户的“customer_id”列。我需要按 PackageDelivery.customer.lastName 排序结果;
目前我正在使用 createSQLQuery 来获取结果。由于客户实体是由 Hibernate 而不是由我的 native SQL 查询拉入的,因此我不能只通过 package_delivery.customer.last_name 添加订单。有没有办法按实体属性排序 Hibernate 从 native SQL 查询中提取?
select {pd*.},{tl.*},{pc.*} from package_delivery as pd
inner join transport_log on tl.package_id=pd.id
left join package_contents on pd.id=pc.package_id
//order by pd.customer
def session =sessionFactory.getCurrentSession();
def lookup=session.createSQLQuery(que)
.setParameter('startDate',startdate)
.setParameter('endDate',enddate)
.addEntity('pd', ProductDelivery.class)
.addEntity('tl', TransportLog.class)
//need to sort by ProductDelivery.customer.lastName??
//.setResultTransformer( to???)
//.addOrder(Order.desc(to???)

最佳答案

您可以添加该客户类,如 {c} 并使用 .addEntity('c', Customer.class),然后使用 c.last_name 的订单。
并建立客户和产品交付的关系

关于hibernate - HQL Hibernate 排序依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29682475/

相关文章:

java - 如何加入符合条件的实体?

grails - 来自src/java的Grails 2.x类未在插件中解析

java - 字段列表中的 JPA 未知列

java - 如何从数据库生成用于 Hibernate 4 的 Java 类

grails - 为什么用户使用 Spring Security 和 Grails 进行更新而不调用 save()?

json - 如何在Grails 3中使用json View 时设置响应代码

java - 参数值 [0] 与预期类型 [java.lang.Integer] 不匹配

java - Hibernate:如何编写 HQL 来获取没有其标识关系记录的实体的记录

java - HQL java.lang.NumberFormatException : For input string

hibernate - JPA (Hibernate) 西里尔字母