2009-03-17 628 views
7

En un mapeo común de uno a muchos, el lado "uno" es el propietario de la asociación. ¿Por qué alguien usaría el mapping de belongsTo para tal mapeo? ¿Me estoy perdiendo algún efecto secundario de especificar belongsTo?Grails/GORM: El significado de belongsTo en relaciones 1: N

En otras palabras: ¿cuáles son los efectos de especificar un mapping de belongsTo en GORM frente a no especificarlo?

Respuesta

19

Si se especifica pertenece a depende del tipo de referential action que desee.

Si desea Griales hacer en Borrar, CASCADE acción referencial, entonces no especifica belongsTo. Si desea que Grails realice Al borrar, RESTRICT acción referencial, NO especifique pertenece a.

p. Ej.

// "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. 
} 

Espero que esto ayude.

+0

¿Puedo hacerle una pregunta relacionada con belongsTo? que pasa si le digo a Player belongsTo Team pero no afirmé que Team tiene Many Player. si el Equipo se eliminó, ¿qué pasará con el Jugador? ¿Se eliminarán también? – nightingale2k1

+0

@ nightingale2k1 - Creo que si asignaras Team-Player de esa manera no habría asociación alguna entre los dos, entonces un jugador cuando se borre el equipo correspondiente –

+0

muy bien explicado, gracias – add9

2

La especificación de belongsTo permite a Grails realizar una cascada transparente de actualizaciones, guardar y eliminar los elementos secundarios del objeto. Sin belongsTo, si intenta eliminar un registro maestro, terminará obteniendo una violación de clave externa si tiene algún detalle que le pertenezca.

Cuestiones relacionadas