Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails-自引用关系_Grails_Gorm - Fatal编程技术网

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
这正是我想要的。干杯