J'ai une application Grails avec un domaine Restaurant et un domaine Personne.Plusieurs associations dans les grails
class Restaurant {
String name
static belongsTo = [ owner: Person ]
}
class Person {
String name
static hasMany = [ favoriteRestaurants : Restaurant ]
}
Mon problème est que GORM crée seulement deux tables, Restaurant et Person, où Restaurant a un owner_id. Cependant ce qui me manque est la table de jointure qui lie les restaurants préférés d'une personne à lui.
Je peux comprendre pourquoi GORM le fait de cette façon (bidirectionnel un-à-plusieurs), mais je ne peux pas comprendre comment le faire comme je le veux (1x unidirectionnel un-à-plusieurs, 1x unidirectionnel plusieurs à une). Je suppose que je devrais utiliser mappedBy mais je ne sais pas quoi la carte à car il n'y a rien qui relie en arrière :-(
De plus, je considérais d'abord les domaines suivants:
class Restaurant {
String name
static belongsTo = [ owner: Person ]
static hasMany = [ outstandingCouponOwners : Person ]
}
class Person {
String name
static hasMany = [ favoriteRestaurants : Restaurant ]
}
où il y a une autre relation un-à-plusieurs (et encore une fois avec rien à mapper à l'autre extrémité)
j'ai eu un à plusieurs une autre relation, et pour votre suggestion de travailler que je devais changer pour « belongsTo statique = personne » et ajouter « Personne propriétaire » à la place. Aussi ajouté un hasMAny inverse pour les restaurants préférés ainsi que le mappedBy pour la classe Restaurant. Mais alors ça a marché – Steve