1

我的两个域类 (UserPost) 在它们之间有多个一对多关联。User可能喜欢、不喜欢、看到或拥有多个Posts。为此,我设置了 hasMany 关系,如下所示:

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

在我开始使用代码开发自己的一面之后,seen我看到posts列表中的每个对象也在seen,likesdislikes. 然后我尝试使用 joinTable 来映射表:

static mapping = {
    posts joinTable: [name: 'USER_POSTS',
        column: 'POST_ID',
        key: 'USER_ID']
    seen joinTable: [name: 'USER_SEEN',
        column: 'POST_ID',
        key: 'USER_ID']
    likes joinTable: [name: 'USER_LIKES',
        column: 'POST_ID',
        key: 'USER_ID']
    dislikes joinTable: [name: 'USER_DISLIKES',
        column: 'POST_ID',
        key: 'USER_ID']
}

posts但不幸的是,没有任何改变,添加到其他列表的帖子也仍然存在。我究竟做错了什么?

4

1 回答 1

1

在尝试了很多东西之后mappedBymapping我决定创建单独的域(实际上具有相同的属性)以保持和之间的喜欢、不喜欢和看到的User联系Post。实际上我的解决方案不是基于关系的,它是一种用户发布活动的日志。

class UserLike {
    static belongsTo = [user:User,post:Post]
}
class UserDislike {
    static belongsTo = [user:User,post:Post]
}
class UserSee {
    static belongsTo = [user:User,post:Post]
}

当我想做一些我post1喜欢的user1事情时:

new UserLike(user:user1,post:post1).save()

也许它对其他人来说并不完美,但解决了我的问题

于 2012-09-03T21:08:07.773 回答