Я получаю исключение groovy.lang.MissingPropertyException каждый раз, когда пытаюсь передать переменную в запрос where.
Это мои доменные классы:
class Book {
String title
static belongsTo = [author: Author]
static constraints = {
title(blank: false, maxSize: 100)
}
}
class Author {
String name
static hasMany = [books: Book]
static constraints = {
name(unique: true, blank: false, maxSize: 50)
}
}
И этот метод испытаний вызывает исключение:
@Test
void testWhereQuery() {
long authorId = 5
def query = Book.where {
author.id == authorId
}
def books = query.list()
assert books.size() == 0
}
groovy.lang.MissingPropertyException: No such property: authorId for class: grails.gorm.DetachedCriteria
at grails.gorm.DetachedCriteria.methodMissing(DetachedCriteria.groovy:808)
at grails.gorm.DetachedCriteria.build(DetachedCriteria.groovy:723)
at org.grails.datastore.gorm.GormStaticApi.where(GormStaticApi.groovy:116)
at helloworld.BooksIntegrationTests.testWhereQuery(BooksIntegrationTests.groovy:38)
Как передать переменную в запрос?