2009-08-18 2 views
3

Допустим, у меня есть некоторые простые классы для твиттер-как приложение:Сортировка ссылается список в Граалей

  • пользователя
  • Опубликовать
  • hasMany сообщения

пользователем, и после belongsTo а, пользователь.

Теперь, я пытаюсь получить список сообщений для определенного пользователя в порядок даты.

Я знаю, что я могу получить список всех сообщений (для всех пользователей) по:

def posts = Post.list([sort: 'dateCreated', order: 'asc', max:10]) 

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

def user = User.findByUserId(userId) 
def posts = user.posts 

так что теперь будет возвращать список всех сообщений для этого пользователя, но как организовать этот список, так что они заказывается так: [sort: 'dateCreated', order: 'asc', max: 10], чтобы получить первые 10 в правильном порядке?

Или я просто об этом ошибаюсь?

ответ

7

Update, на основе разговора:

def user = User.findByUserId('steve') 
def posts = Post.findAllByUser(user, [sort: 'dateCreated', order:'asc', max: 10]) 
+0

Это хорошо, но все равно я могу ограничить извлечение БД до 10 штук? Или мне нужно восстановить все, а затем манипулировать в памяти? – Stevo

+0

I _think_ вы должны использовать 'GORM' для извлечения сообщений, используя что-то похожее на Post.findByUser (user, [sort: 'dateCreated', order: 'asc', max: 10]). См. Http://grails.org/doc/1.1.x/ref/Domain%20Classes/findAllBy.html –

+0

Sweeeeet! Защиты пользователя = User.findByUserId ('стив') Защиты сообщения = Post.findAllByUser (пользователь, [сортировать: 'dateCreated', заказ: 'по возрастанию', не более: 10]) Спасибо! – Stevo

4

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

static mapping = { 
    posts sort:'dateCreated', batchSize:10 
} 
+0

Good Call Dave :-) http://grails.org/doc/1.1.1/guide/5.%20Object%20Relational%20Mapping%20(GORM).html#5.5.3%20Default%20Sort%20Order Имейте ввиду, что заказ не работает на картировании dsl: http://jira.codehaus.org/browse/GRAILS-3778 –

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