【发布时间】:2014-06-05 16:58:00
【问题描述】:
我一直在尝试了解 GORM 的工作原理,但我想我已经搞定了。不过,让我的人际关系变得正确,我很费时间。
这是我的数据库架构设置(2 个表):
表格 - 用户
userhash varchar(255)
firstname varchar(255)
lastname varchar(255)
表格 - 日志
userhash varchar(255)
accessdate date
表中没有定义外键和主键约束。但是,在 users 表中,userhash 将是唯一的。我不是这样设计的,但我必须这样使用它。
现在是我的 Grails 域类:
类 - 用户
class Users {
String userhash;
String firstname;
String lastname;
static hasMany = [logs: Logs]
}
类 - 日志
class Logs {
String userhash;
Date accessdate;
static belongsTo = Users;
}
在我的控制器中,我执行以下操作:
def user = Users.findByUserhash("nraboy");
println user.firstname;
println user.logs;
它打印出正确的名字,但是当我尝试显示日志时,它是 null 或空的。我是否错误地为子表请求数据,或者我在域类设计中的某处遗漏了什么?
我尝试过以下操作,但现在也很幸运:
类 - 日志
static mapping = {
id generator: "assigned", name: "userhash", type: "string"
}
类 - 用户
static mapping = {
userhash generator: "foreign"
}
我认为以上内容可以让我通过代码手动定义主键和外键,因为表中不存在它。不过运气不好。
任何帮助将不胜感激。
谢谢,
【问题讨论】:
标签: sql grails grails-orm