【发布时间】:2011-12-23 21:32:41
【问题描述】:
我有一些基本的 grails 域对象:
任务 用户
最近,我希望能够将任务分配给多个用户。所以我将这段代码添加到 Task.groovy 类中:
static hasMany = [users: User]
static mapping = {
users joinTable: [name: 'task_user', column: 'user_id', key: 'task_id']
}
因此,现在可以使用连接表将任务分配给多个用户 - 连接任务和用户表。现在,当我创建一个新任务时,它给了我错误消息:
“非空属性引用空值或临时值:blah.User.address”
在生成的连接表“task_user”中,它只需要来自用户对象的 user_id,所以我不明白为什么它抱怨其他用户字段为空。用户对象将始终存在于数据库中。我不想为了创建新任务而完全加载每个用户。我很确定它与级联有关。
我想要的行为是,如果删除任务,则应删除 task_user 连接表中的关联条目。我“从不”希望用户对象因保存任务而被更新/删除。我不确定如何继续。
【问题讨论】:
-
你能发布一些产生错误的代码吗?这将有助于给出更好的答案。我的第一个想法是您引用的 User 对象不是 User 的实例化版本(这意味着它只有一个 id 集,在这种情况下您会收到这样的错误)