Grails映射问题 - 多对多

时间:2012-01-28 08:22:34

标签: hibernate grails data-modeling gorm

我有以下结构

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]之间定义   多对多的关系。示例:static belongsTo = Post

  • 用户可以拥有多个帖子
  • 帖子属于用户
  • 帖子可以有多个订阅者

版Grails 1.3.7

1 个答案:

答案 0 :(得分:5)

我遇到了同样的问题,这意味着创建了多对多关系以及同一两个类之间的1对多关系。

这样做的方法如下:

用户类:

class User{

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

发布课程:

class Post{  

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

我在this discussion

中找到了答案