我有一个复杂的查询(我已经为这个问题简化了),这需要我使用 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/