2010-01-12 4 views
2

У меня есть много разных отношений.Grails Многие для многих ассоциаций Querying

class Post { 
    String title 
    static hasMany = [tags:Tag] 
} 

class Tag { 
    static hasMany = [posts:Post] 
} 

Я хотел бы получить список сообщений для тега, которые имеют некоторые другие критерии (например, порядок сортировки, частичное совпадение названия, и т.д.). У меня есть, чтобы использовать критерии grails для достижения этого? Или есть какой-то способ сделать что-то вроде этого:

Post.findAllByTitleLikeAndTagsContains("partial title", aTag) 

ответ

4

Я не думаю, что динамические искатели позволит вам попасть в один ко многим или многие ко многим ассоциаций - вы должны сделать критерий или пойти HQL маршрут запроса. Вы можете запрашивать только одну-единственную ассоциацию, а не одну для многих. (Смотрите раздел 5.4.1 Dynamic Finders)

+0

Да, динамические искатели поддерживают только простые свойства - критерии времени! – leebutts

+0

Вот что я подумал. Я действительно хочу, чтобы у Грайля был простой способ сделать это, но, я думаю, мне просто нужно положить его в JIRA. – Blacktiger

0

Вы можете использовать withCriteria, например:

Post.withCriteria{ 
    tags { 
     eq 'id',aTag.id 
    } 
} 
+0

Правда, но если вы прочитаете мой вопрос, вы заметили бы, что я просил об этом, не используя критерии. – Blacktiger