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确保了这一点)