Grails 删除实体时从M:N关系中删除关联

Grails 删除实体时从M:N关系中删除关联,grails,many-to-many,gorm,Grails,Many To Many,Gorm,在我的领域里,我有一种多对多的关系。问题是GORM强迫我定义所有者实体,但我不认为任何一方“拥有”关系 class User { String username String password static hasMany = [organizations: Organization] static belongsTo = Organization static constraints = { } } class Organizat

在我的领域里,我有一种多对多的关系。问题是GORM强迫我定义所有者实体,但我不认为任何一方“拥有”关系

class User {    
    String username
    String password

    static hasMany = [organizations: Organization]
    static belongsTo = Organization

    static constraints = {
    }
}


class Organization {
    String name;

    static hasMany = [members: User]
}

在这种情况下,我显然不允许删除某个组织中的用户(因为该组织“拥有”关系)。我希望能够删除这两个实体,并且在删除时只需删除关系(用户\组织表中的行)。是否有可能或者我必须自己编写此逻辑(如果有,实现此逻辑的最佳方式是什么)?

您可以删除关系的双方,无论谁是“所有者”。belongsTo下面的
只应用了正确的级联,因此您不必这样做

在您的示例中,如果要删除用户,首先必须删除该关系。因此,要删除用户,请执行以下操作:

organization.removeFromMembers(user)
user.delete()

如果你删除一个组织,因为它是“所有者”,你不需要使用
removeFrom*

是的,我知道这一点。我要寻找的正确方法可能是将此事件与beforeDelete事件相结合。无论如何,我会接受你的回答,谢谢你的建议。