У меня сложный запрос (который я упростил для этого вопроса), который требует от меня использования подходов помимо 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
user2782001 16 Апр 2015 в 20:54
В документе hibernate есть пример порядка соединения: docs.jboss.org/hibernate/orm/3.3/reference/en/html/…
 – 
kamil.rak
16 Апр 2015 в 21:20

1 ответ

Лучший ответ

Вы можете добавить этот класс клиентов, например {c}, и использовать .addEntity ('c', Customer.class), а затем использовать заказ по c.last_name. и установить отношения между Заказчиком и ПродуктомДоставкой

0
mvlaicevich 16 Апр 2015 в 21:13
Закончил делать что-то подобное.
 – 
user2782001
16 Апр 2015 в 21:39