基準ビルダーにイライラする問題があります。1人のユーザーが1つのカレンダーを持ち、カレンダーに多くのエントリがあるアプリケーションがあります。簡単そうに見えますが、特定のユーザーのカレンダーエントリを取得しようとすると、ユーザープロパティ(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]
...
}
グーグルをしているときに、2008年の初めに指摘された同様の問題に遭遇しました:http: //jira.codehaus.org/browse/GRAILS-1412
しかし、そのリンクによると、この問題はずっと前に解決されているはずです。
私は何が間違っているのですか?