2012-11-23 35 views
5

Tôi có hai lớp miền sau, Người dùng và Bài đăng Và tôi có hai mối quan hệ giữa họ, Người dùng có 1-nhiều với Bài đăng có tham chiếu trở lại . Người dùng có nhiều-nhiều mối quan hệ với bài viết rằng ông sau: Các mối quan hệ tôi đã nhận được như sau:Grails Nhiều-To-Nhiều và One-To-nhiều xung đột

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 
} 

Bây giờ tôi nhận được một cuộc đụng độ với Grails, tôi đã cố gắng giải quyết nó thông qua bản đồ nhưng không thành công, đây là lỗi tôi nhận được:

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) 

Bất kỳ ai biết cách giải quyết vấn đề này?

Trả lời

1

Tôi nghĩ bạn có thể làm điều đó bằng mappedBy, như:

class User{ 

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


class Post{ 

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

Hãy xem this để biết thêm về mappedBy.