If I have a Client domain class, and that Client hasMany Courses. How do I find the course I’m looking for? For instance:
class Client {
String name
static hasMany = [courses:Course]
}
class Course {
String name
static belongsTo = [client:Client]
}
def client = Client.get(1)
I want to “find” or “search” within that courses relationship. Maybe something like:
client.courses.find(name:'Whatever')
Is there any way to do this with Grails?
If you’re using a second level cache and have configured it for this association, you might want to iterate over the collection (this will save you a database query if the association is in cache).
Here is an example using the clever Groovy Collection API:
Important: If you decide to take this approach make sure to configure eager / batch fetching of
coursesso you don’t run into the n+1 problem.