Java 如何使hibernate一次将实体数据保存到所有相关表中?
我在Java 如何使hibernate一次将实体数据保存到所有相关表中?,java,hibernate,Java,Hibernate,我在团队和团队成员之间使用额外的表团队成员建立了多对多关系。Hibernate只将数据保存到成员表忽略团队成员。如何让它工作 DAOImpl public void addTeamMember(TeamMember teamMember) { getCurrentSession().save(teamMember); } 子实体 @Entity @Table(name="member") public class TeamMember { @ManyToMany(fet
团队
和团队成员
之间使用额外的表团队成员
建立了多对多关系。Hibernate只将数据保存到成员
表忽略团队成员
。如何让它工作
DAOImpl
public void addTeamMember(TeamMember teamMember) {
getCurrentSession().save(teamMember);
}
子实体
@Entity
@Table(name="member")
public class TeamMember {
@ManyToMany(fetch = FetchType.EAGER, mappedBy = "teamMembers", cascade = CascadeType.ALL)
public Set<Team> getTeams() {
return teams;
}
public void setTeams(Set<Team> teams) {
this.teams = teams;
}
}
@Entity
@Table(name="teams")
public class Team {
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "team_member", joinColumns =
@JoinColumn(name = "FK_Team_id", referencedColumnName= "id"),
inverseJoinColumns = @JoinColumn(name = "FK_Member_id", referencedColumnName = "id")
)
public Set<TeamMember> getTeamMembers() {
return teamMembers;
}
public void setTeamMembers(Set<TeamMember> teamMembers) {
this.teamMembers = teamMembers;
}
}
@实体
@表(name=“member”)
公开课小组成员{
@ManyToMany(fetch=FetchType.EAGER,mappedBy=“teamMembers”,cascade=CascadeType.ALL)
公共集getTeams(){
返回队;
}
公共队(集合队){
这个。团队=团队;
}
}
母公司实体
@Entity
@Table(name="member")
public class TeamMember {
@ManyToMany(fetch = FetchType.EAGER, mappedBy = "teamMembers", cascade = CascadeType.ALL)
public Set<Team> getTeams() {
return teams;
}
public void setTeams(Set<Team> teams) {
this.teams = teams;
}
}
@Entity
@Table(name="teams")
public class Team {
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "team_member", joinColumns =
@JoinColumn(name = "FK_Team_id", referencedColumnName= "id"),
inverseJoinColumns = @JoinColumn(name = "FK_Member_id", referencedColumnName = "id")
)
public Set<TeamMember> getTeamMembers() {
return teamMembers;
}
public void setTeamMembers(Set<TeamMember> teamMembers) {
this.teamMembers = teamMembers;
}
}
@实体
@表(name=“teams”)
公开课小组{
@ManyToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL)
@JoinTable(name=“团队成员”,JointColumns=
@JoinColumn(name=“FK\u Team\u id”,referencedColumnName=“id”),
inverseJoinColumns=@JoinColumn(name=“FK\u Member\u id”,referencedColumnName=“id”)
)
公共集getTeamMembers(){
返回团队成员;
}
公共无效设置成员(设置团队成员){
this.teamMembers=团队成员;
}
}
当您在TeamMember上编写mappedby时,您对JPA说团队将负责管理此关系。这意味着您必须手动将成员添加到团队列表中,才能对其进行排序(cascadeType all确保了这一点)