Допустим, у меня есть два класса домена:Запрос класса домена Grails - как я могу найти по полям, которые ссылаются на другой класс домена?
class User {
String name
Role role
}
class Role {
String name
static belongsTo = [user: User]
}
и создать несколько записей:
def r1 = new Role(name: "role1").save()
def r2 = new Role(name: "role2").save()
new User(name: "user1", role: r1).save()
new User(name: "user2", role: r2).save()
new User(name: "user3", role: r1).save()
Как я могу теперь выбрать моих пользователей по ролям? Я бы ожидать, чтобы быть в состоянии выполнить одно из следующих действий:
def role = Role.findByName("role1"); //returns a Role with [ id:1 name:"role1" ]
User.findAllByRole(role) //returns null
User.findAllByRole(new Role(name: "role1")) //returns null
User.findAllByRole(role.id) //returns null
User.findAllByRole(id: role.id) //returns null
Возможно ли класс домена, чтобы найти другие связанные классы домена с помощью динамических методов находки *? Я могу сделать это с помощью namedQueries, но идентификатор, а не потому, что я не хочу, чтобы написать их для все отношения у меня есть между доменными классами
На самом деле я кажусь идиотом. User.findAllByRole (роль) сейчас работает –
Что не работает? Если бы это было не так просто, вы могли бы написать ответ на свой вопрос и принять его, чтобы ему помогли люди, имеющие такую же проблему в будущем. –