组合不创建外键引用

问题描述 投票:0回答:1

我有两个域类如下,

class Agent {
    String name
    Team team
}

class Team {
    String name 
    Agent primarySupervisor
    static hasMany = [secondarySupervisors:Agent]
}

每个代理都有一个团队,每个团队都有一个主要主管和多个二级主管。

上面的代码不会为辅助管理程序映射创建表,如果我从Team域中删除团队属性,或者从Team域中删除primarySupervisor,则会创建映射表。

我究竟做错了什么?

grails gorm
1个回答
0
投票

此域类结构应该适合您。

 class Agent {
        String name
        static belongsTo = Team
        static hasOne = [team: Team] // Every agent has a team
    }

    class Team {
        String name 
        static hasMany = [secondarySupervisors:Agent] // every team has a primary supervisor and multiple secondary supervisors
    }

这里有很多关系将形成一个新表作为team_agent。

© www.soinside.com 2019 - 2024. All rights reserved.