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

标签 java hibernate hibernate-annotations

我有两个 pojo 学生和部门。 关系是,一个类有很多学生。 (双向)

@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

在Section类中以及在Student类中:

@ManytoOne(cascade=CascadeType.ALL)
 private Section section;

关于java - Hibernate 不会在@onetomany 双向关系中使用的连接表中插入行。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31676744/

相关文章:

java - 如何一位一位地读取数字?

JAVA - 检查面板中最近的对象

oracle - Grails的save(flush:true)将线程卡在socketRead0中

java - JPA/Hibernate persist 似乎不起作用

postgresql - 是否可以使用 Hibernate 注释定义 INITIALLY DEFERRED 约束?

Java 不支持多重继承,但 Java 中的每个类都隐式地扩展了 Object 并允许再继承一个

java - 如何正确使用 PropertyValueFactory?

java - infinispan 作为二级缓存 hibernate

Hibernate OneToMany OrderBy 搞乱了主查询

java - 需要将通过 jpa 获取的 uniqueresult 转换为 String 数组的解决方案