Grails的映射问题 - 多对多

问题描述:

我有以下结构Grails的映射问题 - 多对多

class User{ 
    List<Post> posts = new ArrayList<Post>(); 
    static hasMany = [posts: Post] 
} 

class Post{ 
    User user 
    List<User> subscribers = new ArrayList<User>(); 
    static belongsTo = [user: User] 
    static hasMany = [subscribers: User] 
    } 

,它显示

造成的: org.codehaus.groovy.grails.exceptions。 GrailsDomainException:没有所有者 在域类[class User]和[class Post]之间定义的 多对多relationsh IP。例如:静态属于关联=邮政

  • 用户可以具有多个交
  • 甲发布属于一个用户
  • 甲后可以有多个用户

版的Grails 1.3.7

+1

请不要评论时间 – 2012-01-28 08:31:54

我有同样的问题,这意味着创建一个多对多的关系和一对多的关系两个班级之间的关系。

做到这一点的方法是如下:

用户等级:

class User{ 

    static hasMany = [createdPosts: Post, subscribedToPosts : Post] 
    static mappedBy = [createdPosts : "creator"] 
} 

Post类:

class Post{ 

    User creator 
    static hasMany = [subscribers: User] 
    static belongsTo = User 
} 

我发现这个问题的答案在this discussion

+0

所有帖子,该答案应该修复它。 还指出,这是(隐约)在文档中提到http://grails.org/doc/2.0.x/ref/Domain%20Classes/mappedBy.html – kritzikratzi 2012-03-04 21:11:14