Grails-自引用关系
当我编写以下类时,我得到以下编译错误: 无法解析属性 如何实现以下目标:Grails-自引用关系,grails,gorm,Grails,Gorm,当我编写以下类时,我得到以下编译错误: 无法解析属性 如何实现以下目标: class Employee{ String Name String Email Employee Manager static hasMany = [desginations:Designation] static constraints = { Name(unique:true) Email(unique:true) } 谢谢, 非常感谢。GORM可能会对遵循其命名约定很挑剔
class Employee{
String Name
String Email
Employee Manager
static hasMany = [desginations:Designation]
static constraints = {
Name(unique:true)
Email(unique:true)
}
谢谢,
非常感谢。GORM可能会对遵循其命名约定很挑剔。特别是,字段名应该是以小写字母开头的大小写 定义如下:
class Employee {
String name
String email
Employee manager
static constraints = {
name(unique:true)
email(unique:true)
manager(nullable:true)
}
}
我可以创建一名员工,其经理如下:
manager = new Employee(name: 'manager', email: 'manager@example.com')
manager.save()
employee = new Employee(name: 'employee', email: 'employee@example.com')
employee.manager = manager
employee.save()
编辑:
正如fabien7474所指出的,重要的部分是管理器(nullable:true)约束。这样可以保存员工记录,而无需指定经理。在上面的示例中,名为
manager
的员工是employee
的经理,但是manager
本身没有经理。这由数据库中“管理器”列中的空值表示。GORM可能会对遵循其命名约定很挑剔。特别是,字段名应该是以小写字母开头的大小写
定义如下:
class Employee {
String name
String email
Employee manager
static constraints = {
name(unique:true)
email(unique:true)
manager(nullable:true)
}
}
我可以创建一名员工,其经理如下:
manager = new Employee(name: 'manager', email: 'manager@example.com')
manager.save()
employee = new Employee(name: 'employee', email: 'employee@example.com')
employee.manager = manager
employee.save()
编辑:
正如fabien7474所指出的,重要的部分是管理器(nullable:true)约束。这样可以保存员工记录,而无需指定经理。在上面的示例中,名为
manager
的员工是employee
的经理,但是manager
本身没有经理。这在数据库的“经理”列中用空值表示。为了更清楚地说明,我不知道如何为员工分配一个inturn也是员工的经理。为了更清楚地说明,我不知道如何为员工分配一个inturn也是员工的经理。不过,感谢mate的回复,如果我必须编辑我指定为经理的员工,那么Grails不允许我为经理指定空值。这导致了一个问题,即必须为经理分配一名经理。我希望您理解我的意思,这只发生在我编辑经理时。如果您分配了约束经理(nullable:true),则不应发生。抱歉,忘了提及,我的员工域中确实有经理(nullable:true)。编辑管理器时,在管理器的列表框中看不到空选项。我被迫将一个管理器分配给我正在编辑的管理器。添加可为空的约束后,自动生成的脚手架视图将允许您为管理器字段选择空白。如果您已经自定义了视图,请向管理器添加noSelection=“${['null':''']}”g:select视图GSP中的标记。如果没有,就运行“grails generate views Employee”从头开始重新创建视图。非常感谢,伙计,noSelection
这正是我想要的。干杯。谢谢你的回复,但是,如果我必须编辑我指定为经理的员工,那么Grails不允许我为经理指定空值。这导致了一个问题,即必须为经理分配一名经理。我希望您理解我的意思,这只发生在我编辑经理时。如果您分配了约束经理(nullable:true),则不应发生。抱歉,忘了提及,我的员工域中确实有经理(nullable:true)。编辑管理器时,在管理器的列表框中看不到空选项。我被迫将一个管理器分配给我正在编辑的管理器。添加可为空的约束后,自动生成的脚手架视图将允许您为管理器字段选择空白。如果您已经自定义了视图,请向管理器添加noSelection=“${['null':''']}”g:select视图GSP中的标记。如果没有,就运行“grails generate views Employee”从头开始重新创建视图。非常感谢,伙计,noSelection
这正是我想要的。干杯