Grails / GORM: значение принадлежности в отношениях 1: N - PullRequest
7 голосов
/ 17 марта 2009

В обычном отображении «один ко многим» сторона «один» является владельцем ассоциации. Зачем кому-то использовать карту ToTo для такого отображения? Я пропускаю какой-то побочный эффект от определения принадлежащего?

Другими словами: каковы последствия указания принадлежности-отображения в GORM по сравнению с не указанием?

Ответы [ 2 ]

19 голосов
/ 18 марта 2009

Указание относится к зависит от типа ссылочного действия , который вы хотите.

Если вы хотите, чтобы Grails выполнил При удалении, CASCADE ссылочное действие, то НЕОБХОДИМО указать относится к . Если вы хотите, чтобы Grails выполнил При удалении, RESTRICT ссылочное действие, тогда НЕ указывайте ProperTo .

например.

// "belongsTo" makes sense for me here. 
class Country {
  String name
  static hasMany = [states:State]
}

class State {
  String name;
  // I want all states to be deleted when a country is deleted. 
  static belongsTo = Country
}

// Another example, belongsTo doesn't make sense here
class Team {
  String name
  static hasMany = [players:Player]
}

class Player {
   String name
   // I want that a team should not be allowed to be deleted if it has any players, so no "belongsTo" here. 
}

Надеюсь, это поможет.

2 голосов
/ 17 марта 2009

Указание ownTo позволяет Grails прозрачно каскадно обновлять, сохранять и удалять дочерние объекты объекта. Без принадлежащего, если вы попытаетесь удалить основную запись, вы получите нарушение внешнего ключа, если у него есть какие-либо данные, которыми он владеет.

...