У вас есть отношение «один ко многим» от Gift до ClickThrough, поэтому я предполагаю, что каждый ClickThrough - это запись с некоторой датой или другой информацией, связанной с ней. В этом случае я бы добавил поле «количество» в ваш файл сопоставления и прикрепил бы порядок к критерию:
criterion.add(Order.asc(count)))
Свойство сопоставления выглядит примерно так:
<property name="count" type="integer" formula="(select count(*) from Gift g inner join ClickThrough ct on ct.gift_id=g.id where g.id=ID)"/>
Если вы не можете или не хотите изменять файл сопоставления, вы можете использовать Collections.sort()
с Comparator
, хотя кажется менее эффективным возвращать столько данных из БД.