Grails: Comment puis-je chercher parmi les enfants dans une relation hasMany?
Si j'ai un Client du domaine de la classe, et que le Client hasMany Cours. Comment puis-je trouver les cours que je suis à la recherche? Par exemple:
class Client {
String name
static hasMany = [courses:Course]
}
class Course {
String name
static belongsTo = [client:Client]
}
def client = Client.get(1)
Je veux "trouver" ou "recherche" dans la cours de la relation. Peut-être quelque chose comme:
client.courses.find(name:'Whatever')
Est-il possible de faire cela avec le Graal?
source d'informationauteur intargc
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez un cache de second niveau et que vous avez configuré pour cette association, vous pouvez parcourir la collection (cela vous fera économiser une requête de base de données si l'association est dans le cache).
Voici un exemple d'utilisation de l'intelligent Groovy API Collection:
Important: Si vous décidez de prendre cette approche assurez-vous de configurer avides /chargement par lot de
courses
de sorte que vous ne courez pas dans le n+1 problème.Est une façon dynamique finder méthodes:
Cela se faisait tout d'un client en cours nommé "quoique ce soit".
Graal a également quelques autres façons pour accomplir cette tâche.