Team您需要创建一个联结表来处理 a和 a之间的多对多关联Project,但是您不需要此联结表的 bean 或类。PROJECT以下示例将在和之间创建单向关联PARTICIPANT。您需要创建一个TEAM_MEMBERorPARTICIPANT表才能执行此关联。
项目.java
public class Project{
@ManyToMany(cascade={CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH}, targetEntity = Participant.class)
@JoinTable(name = "PROJECT_TEAM", joinColumns = { @JoinColumn(name = "TEAM_MEMBER_ID", referencedColumnName = "PROJECT_ID") },
inverseJoinColumns = { @JoinColumn(name = "PARTICIPANT_ID", referencedColumnName = "PARTICIPANT_ID") })
private List<Participant> team = new ArrayList<Participant>();
//Accessors - get/setTeam method
}
此答案假定以下数据模型已到位:
CREATE TABLE PROJECT(
PROJECT_ID int,
PROJECT_TITLE varchar(50),
CREATED_DATE DATE,
PROJECT_MANAGER varchar(50)
);
CREATE TABLE PARTICIPANT(
PARTICIPANT_ID int,
NAME varchar(50),
PROJECT_ID int
);
CREATE TABLE PROJECT_TEAM(
PROJECT_ID int,
PARTICIPANT_ID int
);