Мне надо отсортировать такую коллекцию: place.photos по дате и
желательно в этой же строке.
Пока сделал через компаратор, т.к. не нашёл, как прикрутить
параметры(сортировка в моём случае) к полю.
--
Вы получили это сообщение, поскольку подписаны на группу ruGrails.
Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу rugr...@googlegroups.com.
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу rugrails+u...@googlegroups.com.
О дополнительных функциях можно узнать в группе по адресу http://groups.google.com/group/rugrails?hl=ru.
Не стоит руками писать запросы, если доменная модель может все сделать
сама. :)
На сколько я понял, чтобы получить фотографии места отсортированными
по умолчанию нужно изменить класс Photo заимплементировав Comparable
типа вот так:
class Photo implements Comparable {
...
int compareTo(o) {
this.date.compareTo(o.date)
}
}
и потом изменив класc Place объявив коллекцию фотографий как
SortedSet:
class Place {
...
SortedSet photos
static hasMany = [photos: Photo]
...
}
Далее следующий код выдаст в на вывод фотографии отсортированные по
возрастанию даты:
Place p = Place.findByName("Some place")
p.photos.each {Photo photo ->
println "Photo: ${photo.description}"
}
Надеюсь это поможет. Кстати, данный подход наиболее правильный в
концепции DDD. Более детально можно посмотреть в документации - пункт
5.2.4.
С уважением,
Александр.
On Nov 29, 5:23 pm, Kirill Suhanov <suhanov.kir...@gmail.com> wrote:
> Ну тогда hibernate criteria, и нечего голову ломать.
>
> 29 ноября 2010 г. 17:22 пользователь Дмитрий Дементьев <
> dementie...@gmail.com> написал:
>
> > так тоже не пройдёт, т.к. связь many-to-many, т.е. у класса Photo
> > static hasMany = [ photos:Photo]
> > Извиняюсь, что сразу это не сказал.
>
> > 29 ноября 2010 г. 16:12 пользователь Kirill Suhanov <
> > suhanov.kir...@gmail.com> написал:
>
> >> findAllByPlace
>
> > --
> > Вы получили это сообщение, поскольку подписаны на группу ruGrails.
> > Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу
> > rugr...@googlegroups.com.
> > Чтобы отменить подписку на эту группу, отправьте сообщение по адресу
> > rugrails+u...@googlegroups.com<rugrails%2Bunsu...@googlegroups.com>