HQL Hibernate 排序依据

HQL Hibernate order by

我有一个复杂的查询(我已针对这个问题进行了简化),这需要我使用 findAll、findBy 等以外的方法。 有多个实体与一般形式汇集在一起​​...

PackageDelivery 有一个链接到 Customercustomer_id 列。我需要按 PackageDelivery.customer.lastName 排序结果; 目前我正在使用 createSQLQuery 来获取结果。由于客户实体是由 Hibernate 而不是我的本地 SQL 查询引入的,所以我不能仅通过 package_delivery.customer.last_name 添加订单。有没有一种方法可以按 Hibernate 从本机 SQL 查询中提取的实体属性进行排序??

select * from PackageDelivery 
inner join PackageContents
left join  ProductBillingInfo

添加了相当多的条件和细节,但这是总体思路。

PackageDelivery 有一个链接到客户的 'customer_id' 列。我需要按 PackageDelivery.customer.lastName 排序结果; 目前我正在使用 createSQLQuery 来获取结果。由于客户实体是由 Hibernate 而不是我的本地 SQL 查询引入的,所以我不能仅通过 package_delivery.customer.last_name 添加订单。有没有一种方法可以按 Hibernate 从本机 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} 一样添加该客户 class 并使用 .addEntity('c', Customer.class) 然后使用订单 c.last_name。 并建立 Customer 和 ProductDelivery

的关系