Как создать критерии гибернации на заказ по некоторым свойствам коллекции

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

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

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

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

2 ответа

Решение

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

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

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

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

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

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

Другие вопросы по тегам