У меня неприятная проблема с построителем критериев. У меня есть приложение, в котором у одного пользователя есть один календарь, а в календаре много записей. Это кажется достаточно простым, но когда я пытаюсь получить записи календаря для данного пользователя, я не могу получить доступ к свойству пользователя (MissingMethodException). Вот код:
def getEntries(User user) {
def entries = [ClassName].createCriteria().list() {
calendar {
user {
eq("id", user.id)
}
}
}
}
Я даже попробовал следующий вариант:
def getEntries(User user) {
def entries = [ClassName].createCriteria().list() {
calendar {
eq("user", user)
}
}
}
Это не вызвало исключения, но и не сработало.
Вот соответствующие части классов домена:
class Calendar {
static belongsTo = [user: User]
static hasMany = [entries: Entries]
...
}
class User {
Calendar calendar
...
}
class Entry {
static belongsTo = [calendar: Calendar]
...
}
При поиске в Google я столкнулся с аналогичной проблемой, отмеченной в начале 2008 года:
http://jira.codehaus.org/browse/GRAILS-1412
Но по этой ссылке эта проблема должна была быть решена давно.
Что я делаю не так?