Grails - 自引用关系

WaZ*_*WaZ 1 grails grails-orm

当我编写以下类时,我得到以下编译错误:

无法解决财产问题

我怎样才能实现以下目标:

class Employee{
  String Name
  String Email
  Employee Manager
  static hasMany = [desginations:Designation]    

  static constraints = {
  Name(unique:true)
  Email(unique:true)
  }
Run Code Online (Sandbox Code Playgroud)

谢谢,非常感谢.

ata*_*lor 5

GORM可以根据其命名惯例挑剔.特别是,字段名称应为camelCase,以小写字母开头.

具有以下定义:

class Employee {
    String name
    String email
    Employee manager

    static constraints = {
        name(unique:true)
        email(unique:true)
        manager(nullable:true)
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以像这样的经理创建一个员工:

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()
Run Code Online (Sandbox Code Playgroud)

编辑:正如fabien7474所指出的,重要的部分是经理(可空:真实)约束.这样可以在不指定经理的情况下保存员工记录.在上面的示例中,名为的员工manageremployee经理,但manager本身没有经理.这由数据库中manager列中的NULL值表示.

  • 如果分配约束管理器,则不应该出现(nullable:true) (3认同)