当前位置: 代码迷 >> java >> Hibernate不会在@onetomany双向关系中使用的联接表中插入行。
  详细解决方案

Hibernate不会在@onetomany双向关系中使用的联接表中插入行。

热度:80   发布时间:2023-08-04 09:08:09.0

我有两个波霍学生和一个科。 关系是,一节有很多学生。 (双向)

@Entity
@Table(name="section")
public class Section {

@Id
@GeneratedValue
private int sectionId;
private String sectionName;
private int maxStudent;

@OneToMany(cascade=CascadeType.PERSIST)
@JoinTable(name="student_section" , inverseJoinColumns={@JoinColumn(name="student_id")},joinColumns={@JoinColumn(name="section_id")})
private Set<Student> student = new HashSet<Student>(0);

public Set<Student> getStudent() {
    return student;
}
public void setStudent(Set<Student> student) {
    this.student = student;
}

@Entity
@Table(name="student")
public class Student {

@Id
@GeneratedValue
private int studentId;
private String studentName;
private int studentAge;
@OneToOne(cascade=CascadeType.PERSIST)
@JoinTable(name="student_section" , joinColumns={@JoinColumn(name="student_id")},inverseJoinColumns={@JoinColumn(name="section_id")})
private Section section;

学生表和节表正在填充,但联接表“ student_section”未在填充。 请提供解决方案。 提前致谢。

您能否尝试以下映射:

@OneToMany(cascade=CascadeType.PERSIST)
@JoinTable(name="student_section" , inverseJoinColumns={@JoinColumn(name="student_id")},joinColumns={@JoinColumn(name="section_id")})
private Set<Student> student

在节课中,在学生课中:

@ManytoOne(cascade=CascadeType.ALL)
 private Section section;
  相关解决方案