Java 在联接表中有多少个?

Java 在联接表中有多少个?,java,playframework,ebean,Java,Playframework,Ebean,我正在使用ebean和play框架,在映射两个连接表之间的多个关系时遇到了一个问题。假设我们有3个实体,个人、公司和职业。一个人可以有很多职业。一个人可以为许多公司工作。一家公司可以在许多行业雇用许多人 这是我的密码: @Entity public class Company extends Model { @Id public Long id; @OneToMany(fetch = FetchType.LAZY, mappedBy = "company")

我正在使用ebean和play框架,在映射两个连接表之间的多个关系时遇到了一个问题。假设我们有3个实体,个人、公司和职业。一个人可以有很多职业。一个人可以为许多公司工作。一家公司可以在许多行业雇用许多人

这是我的密码:

@Entity
public class Company extends Model {

    @Id
    public Long id;

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "company")
    public List<CompanyPerson> companyPersons;

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "company")
    public List<CompanyProfession> companyProfessions;
    ...
}

@Entity
public class Profession extends Model {

    @Id
    public Long id;

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "profession")
    public List<CompanyProfession> companyProfessions;
    ...
}

@Entity
public class Person extends Model {

    @Id
    public Long id;

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "person")
    public List<CompanyPerson> companyPersons;
    ...
}

@Entity
public class CompanyPerson extends Model {

    @EmbeddedId
    public CompanyPersonId id = new CompanyPersonId();

    @ManyToOne
    @JoinColumn(name = "company_id")
    private Company company;

    @ManyToOne
    @JoinColumn(name = "person_id")
    private Person person;

    @ManyToMany(mappedBy = "companyPersons")
    public List<CompanyProfession> companyProfessions;
    ...
}

@Entity
public class CompanyProfession extends Model {

    @EmbeddedId
    public CompanyProfessionId id = new CompanyProfessionId();

    @ManyToOne
    @JoinColumn(name = "company_id")
    private Company company;

    @ManyToOne
    @JoinColumn(name = "profession_id")
    private Person person;

    @ManyToMany(cascade = CascadeType.ALL)
    public List<CompanyPerson> companyPersons;
    ...
}
@实体
上市公司扩展模型{
@身份证
公共长id;
@OneToMany(fetch=FetchType.LAZY,mappedBy=“company”)
上市公司;
@OneToMany(fetch=FetchType.LAZY,mappedBy=“company”)
上市公司专业人士;
...
}
@实体
公共阶级职业扩展模式{
@身份证
公共长id;
@OneToMany(fetch=FetchType.LAZY,mappedBy=“professional”)
上市公司专业人士;
...
}
@实体
公共类人扩展模型{
@身份证
公共长id;
@OneToMany(fetch=FetchType.LAZY,mappedBy=“person”)
上市公司;
...
}
@实体
公共类CompanyPerson扩展模型{
@嵌入ID
public CompanyPersonId id=新CompanyPersonId();
@许多酮
@JoinColumn(name=“公司id”)
私营公司;
@许多酮
@JoinColumn(name=“person\u id”)
私人;
@许多(mappedBy=“companyPersons”)
上市公司专业人士;
...
}
@实体
公共类公司专业扩展模型{
@嵌入ID
public CompanyProfessionId=新公司ProfessionId();
@许多酮
@JoinColumn(name=“公司id”)
私营公司;
@许多酮
@JoinColumn(name=“profession\u id”)
私人;
@多个(级联=级联类型.ALL)
上市公司;
...
}
我得到以下错误:

注入构造函数javax.persistence.PersistenceException时出错:在[models.CompanyProfession.companyPersons]上连接时出错。找不到[null]的本地匹配项,@JoinColumn中可能有错误 EbeanDynamicEvolutions.(EbeanDynamicEvolutions.java:36)

我尝试添加JoinColumn(name=“companyperson\u id”),但这只是将错误从[null]更改为[companyperson\u id]。
我不知道该怎么办。有什么帮助吗?

您真的需要
公司人员
公司专业人员
模型吗?为何您可以在基本模型中创建简单的MM关系,然后按职业、公司、人员等获取人员。此处未显示的CompanyPerson中有特定于人员与公司关系的额外数据。公司专业也一样。