2012-11-23 15 views
5

Ich habe die folgenden zwei Domain-Klassen, User und Beiträge Und ich habe zwei Beziehungen zwischen ihnen, Benutzer haben 1-to-many mit Beiträgen mit Rückbezug . Nutzer hat viele-zu-viele-Beziehungen mit den Beiträgen, dass er folgt: Die Beziehungen, die ich habe, sind wie folgt:Grails Many-to-Many-und One-To-Many Zusammenstoß

User { 
hasMany = [posts : Post, followingPosts: Post] 
belongsTo = [Post] //For the many-to-many, this is the owner i'd like to have. 

} 

Post { 
    hasMany = [followers: User] 
    belongsTo = [owner: User] //For the 1-to-Many, this is my back-reference 
} 

nun einen Zusammenstoß mit Grails Ich erhalte, habe ich versucht, es durch Mapping Lösung aber ohne Erfolg, das ist der Fehler, den ich bekomme:

Domain classes [Post] and [User] cannot own each other in a many-to-many relationship. Both contain belongsTo definitions that reference each other. (Use --stacktrace to see the full trace) 

Wer weiß, wie man das löst?

Antwort

1

Ich glaube, Sie es mappedBy mit tun können, wie:

class User{ 

    static hasMany = [posts : Post, followingPosts: Post] 
    static mappedBy = [posts : "user"] 
} 


class Post{ 

    User user 
    static hasMany = [followers: User] 
    static belongsTo = User 
} 

Werfen Sie einen Blick auf this für weitere Informationen über die mappedBy.