Mehrere hasMany Beziehungen zu denselben domain-Klasse in Grails

Bin ich mit Grails, und ich habe ein domänenmodell mit mehreren hasMany Attribute die gleiche Domäne-Klasse, die wie folgt aussieht:

static hasMany = [ posts : Post, likes : Post, dislikes : Post ]

Das problem, dass ich laufen in ist, dass wenn ich etwas hinzufügen, um die posts Liste, wird es auch irgendwie in die Vorlieben und Abneigungen Listen. Mindestens, das ist, wie es aussieht, wenn ich Durchlaufen jede dieser Listen.

Ich denke, dass das Problem ist, dass ich auch die folgende Beziehung in meinem Beitrag domain:

static belongsTo = [ contributer : Contributer ]

Was ist der beste Weg zu gehen über die Konfiguration dieser Beziehungen, um mein Modell funktionieren? Irgendwelche Vorschläge?


@Wayne,

Ich habe versucht, mit Ihr test hat es erfolgreich bestanden. Also, das einzige, was ich mir vorstellen kann ist, dass es etwas falsch mit meinem save-Methode in meinem PostController. Ich klebte die relavent code unten (ich bin mit dem Spring-Security-Core-plugin, und meine Mitwirkender Klasse erweitert die User-Klasse, die erstellt wird, mit diesem plugin):

@Secured(['IS_AUTHENTICATED_FULLY'])
def save = {
def props = [title:params.title, post:params.post,   category:Category.get(params.category.id)]

def user = Contributer.get(springSecurityService.principal.id)
def postInstance = new Post(props)

postInstance.contributer = user
if (postInstance.save(flush: true)) {
  flash.message = "${message(code: 'default.created.message', args: [message(code: 'post.label', default: 'Post'), postInstance.id])}"
  redirect(action: "show", id: postInstance.id)
}
else {
  render(view: "create", model: [postInstance: postInstance])
}
}

Gibt es alles, was hier steht?

  • wenn Sie hinzufügen, einen Beitrag zu der Mitwirkender tun Sie 'myPost.Mitwirkender=myContributer' oder 'myContributer.addToPosts(myPost)' ?
  • danke für die Antwort. Ich habe beide Wege ausprobiert, mit dem gleichen Ergebnis.
InformationsquelleAutor NickForrer | 2011-09-24
Schreibe einen Kommentar