我有一个复杂的查询(我已经简化了这个问题),这要求我使用findAll,findBy等方法。 有多个实体与一般形式结合在一起......
PackageDelivery
有一个customer_id
列,链接到Customer
。我需要按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???)
答案 0 :(得分:0)
您可以添加{c}之类的客户类,并使用.addEntity(' c',Customer.class),然后使用c.last_name的订单。 并建立客户与ProductDelivery的关系