2009-12-08 7 views
14

Je suis un peu confus au sujet des différences entre l'utilisation de la carte statique hasOne et la composition d'objets dans les classes de domaine. Quelles sont les différences entre les deux? c'est à dire.Grails Composition GORM ou hasOne?

class DegreeProgram { 

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

contre

class DegreeProgram { 

String degreeName 
Date programOfStudyApproval 
GraduateCommittee committee 
} 

où GraduateCommittee est un autre domaine GORM classe modèle.

Répondre

10

Une association hasOne doit être utilisée dans le cas où vous souhaitez stocker la référence de clé étrangère dans la table enfant au lieu du parent dans un bi-un bidirectionnel.

Voir this page un exemple:

+1

Je aurait écrémé avant que mais il n'a pas vraiment enregistré. Dans quels cas voudrais-je stocker la clé du parent dans l'enfant plutôt que vice versa? –

+0

@VisionarySoftwareSolutions Je pense qu'il est utile de s'assurer que l'enfant n'appartient pas à un autre parent car il ne peut contenir que des références à un seul parent. –