2010-01-12 22 views
2

J'ai une relation de plusieurs à plusieurs.Grails Beaucoup à plusieurs Association Demande

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

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

Je voudrais obtenir une liste des postes pour une balise qui ont d'autres critères (comme un ordre de tri, match de titre partiel, etc.). Dois-je avoir pour utiliser les critères de grails pour y parvenir? Ou est-il un moyen de faire quelque chose comme ceci:

Post.findAllByTitleLikeAndTagsContains("partial title", aTag) 

Répondre

4

Je ne pense pas que trouveurs dynamiques vous permettra d'entrer dans un à plusieurs ou plusieurs à plusieurs associations - vous devez faire un critère ou aller le HQL itinéraire de requête. Vous ne pouvez interroger que par une à une association, pas par une à plusieurs. (Voir la section 5.4.1 Dynamic Finders)

+0

Oui, trouveurs dynamiques prennent en charge que de simples propriétés - temps critères! – leebutts

+0

C'est ce que je pensais. Je souhaite vraiment que les grails aient un moyen facile de le faire, mais je suppose que je vais devoir le mettre dans JIRA. – Blacktiger

0

Vous pouvez utiliser withCriteria, par exemple:

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

C'est vrai, mais si vous avez lu ma question, vous auriez remarqué que je demandais un moyen de le faire sans utiliser de critères. – Blacktiger