Как создать критерии гибернации на заказ по некоторым свойствам коллекции - PullRequest
1 голос
/ 19 февраля 2010

Скажем, у меня есть объект, у которого есть история операций как коллекция. Я хочу отсортировать объекты по дате последней операции (это первый элемент истории).

Я бы хотел сделать что-то вроде этого:

criteria.addOrder(Order("history[0].date"))

это возможно?

Ответы [ 2 ]

1 голос
/ 20 февраля 2010

Насколько я знаю, Criteria поддерживает упорядочение только по сопоставленным свойствам, поэтому, возможно, будет достаточно указать дату последней модификации как вычисляемое свойство (используя атрибут формулы тега свойства ).

Конечно, это некрасиво, но так как пока никто не опубликовал лучший подход ...

Редактировать: запрос также может работать не слишком хорошо, возможно, добавив его в качестве избыточного столбца вВаша таблица сущностей - лучший вариант.

1 голос
/ 20 февраля 2010

Совсем не вероятно.

Данные для вашей истории находятся в другой таблице, и для упорядочения по этому соотношению вам понадобятся более сложные критерии, по крайней мере, предполагающие какое-то соединение с другой таблицей, и я подозреваю, что возможно псевдоним.

Опубликуйте карту вашего класса, и мы сможем дать подсказку, как это сделать.

...