У меня есть объект Dog , который содержит набор DogMetadata .
Каждый DogMetadata имеет два значения: String (" desc ") и int (" rank ").
Описания собак имеют разные рейтинги, такие как: «маленький» - 5, «пушистый» - 2, «дружелюбный» - 9, «далматин» - 11, «дурак» - 22
Мне нужно искать собак на основе любых их значений desc (например, найти "пушистых" ИЛИ "маленьких" собак).
Этот запрос возвращает подходящих собак, но они не в любом порядке.
select distinct Dog as d
left join d.dogMetadata as dMeta
where ( (dMeta.desc = 'furry') OR (dMeta.desc = 'small') )
Как упорядочить список подходящих объектов Dog по суммарным значениям ранга любых подходящих DogMetadatas?
Я весь день работал как собака (пробовал «Группировать по» и «Заказывать по»), но думаю, что я лаю не на том дереве.