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が指摘したように、重要な部分はmanager(nullable:true)制約です。これにより、マネージャーを割り当てずに従業員のレコードを保存できます。上記の例では、という名前の従業員manager
はemployee
のマネージャーですが、manager
それ自体にはマネージャーがいません。これは、データベースのマネージャー列のNULL値で表されます。