Java 在联接表中有多少个?
我正在使用ebean和play框架,在映射两个连接表之间的多个关系时遇到了一个问题。假设我们有3个实体,个人、公司和职业。一个人可以有很多职业。一个人可以为许多公司工作。一家公司可以在许多行业雇用许多人 这是我的密码: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")
@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中有特定于人员与公司关系的额外数据。公司专业也一样。