2009-12-08 7 views
14

Estoy un poco confundido acerca de las diferencias entre usar el mapa static hasOne y componer objetos en clases de dominio. ¿Cuáles son las diferencias entre los dos? es decir.Grails GORM composition or hasOne?

class DegreeProgram { 

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

frente

class DegreeProgram { 

String degreeName 
Date programOfStudyApproval 
GraduateCommittee committee 
} 

donde GraduateCommittee es otra clase de modelo de dominio GORM.

Respuesta

10

Se debe utilizar una asociación hasOne en el caso en que desee almacenar la referencia de clave foránea en la tabla secundaria en lugar de la primaria en una relación uno-a-uno bidireccional.

Ver this page para ver un ejemplo:

+1

me gustaría desnatada que antes, pero en realidad no se habían registrado. ¿En qué casos quisiera guardar la clave del padre en el hijo en vez de viceversa? –

+0

@VisionarySoftwareSolutions Supongo que es útil para garantizar que el niño no pertenezca a otro padre porque solo puede tener referencia a uno de los padres. –