2009-12-08 21 views
14

Ich bin etwas verwirrt über die Unterschiede zwischen der Verwendung der statischen hasOne-Map und dem Zusammenstellen von Objekten in Domänenklassen. Was sind die Unterschiede zwischen den beiden? dh.Grails GORM Zusammensetzung oder hasOne?

class DegreeProgram { 

String degreeName 
Date programOfStudyApproval 
static hasOne = [committee:GraduateCommittee] 
} 

gegen

class DegreeProgram { 

String degreeName 
Date programOfStudyApproval 
GraduateCommittee committee 
} 

wo GraduateCommittee andere GORM Domain Modellklasse ist.

Antwort

10

Eine HasOne-Verknüpfung sollte verwendet werden, wenn Sie den Fremdschlüsselverweis in der untergeordneten Tabelle anstelle des übergeordneten Schlüssels in einer bidirektionalen Eins-zu-Eins-Verknüpfung speichern möchten.

Siehe this page für ein Beispiel:

+1

ich abgeschöpft würde, dass vor, aber es ist nicht wirklich registriert hatte. In welchen Fällen möchte ich den Schlüssel des Elternteils im Kind speichern und nicht umgekehrt? –

+0

@VisionarySoftwareSolutions Ich denke, es ist nützlich, um sicherzustellen, dass das Kind nicht zu einem anderen Elternteil gehört, da es nur Bezug auf nur einen Elternteil halten kann. –