2010-09-13 2 views
0

У меня есть класс пользователя и класс Item, и у пользователя может быть несколько элементов.Grails: findAllBy dynamic method - расширенное свойство сортировки

Я хочу, чтобы выбрать несколько пользователей, основываясь на другой собственности с использованием finndAllByProperty и добавлением параметров нумерации страниц (см http://www.grails.org/doc/1.2.2/ref/Domain%20Classes/findAllBy.html.)

Проблема заключается в том, что я хочу, чтобы отсортировать результаты в зависимости от того, сколько элементов у каждого пользователя есть Я хотел бы сделать что-то вроде:

myUsers = User.findAllByProperty(propertyInstance,[max:10, offset:offset, sort:'items.size()', order:"desc"])

, но, конечно, что «вроде:" items.size()»не работает. Можно ли это сделать без добавления свойства itemsNr в домене пользователя, которое будет обновляться при каждом добавлении/удалении элементов?

ответ

1

Вы пробовали сортировать: 'count (items)'? HQL действительно предоставляет этот метод для выбора размера коллекции, но я не уверен, что он будет работать через findAllBy *

Если это не сработает, попробуйте использовать CriteriaBuilder для достижения того, что вы хотите ,

+0

Это не работает, я боюсь. – cripox

+0

Пойду с CriteriaBuilder, спасибо за ответ в любом случае. – cripox

Смежные вопросы