Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 我在jpa存储库中的多对多关系中遇到了问题,无法在联接表中使用引用进行保存_Hibernate_Jpa_Spring Data Jpa_Repository_Spring Repositories - Fatal编程技术网

Hibernate 我在jpa存储库中的多对多关系中遇到了问题,无法在联接表中使用引用进行保存

Hibernate 我在jpa存储库中的多对多关系中遇到了问题,无法在联接表中使用引用进行保存,hibernate,jpa,spring-data-jpa,repository,spring-repositories,Hibernate,Jpa,Spring Data Jpa,Repository,Spring Repositories,我有学生课 @Entity public class Student { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "first_name") private String firstName; @ManyToMany(mappedBy = "students", fetch = FetchType.LAZY, c

我有学生课

@Entity
public class Student {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @Column(name = "first_name")
    private String firstName;

    @ManyToMany(mappedBy = "students", fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.DETACH, CascadeType.PERSIST, CascadeType.REFRESH})
    private List<Course> courses;

    public void addCourse(Course theCourse) {
        if (courses == null) {
            courses = new ArrayList<>();
        }
        courses.add(theCourse);
        theCourse.addStudents(this);
    }

}
现在我想创建学生和课程,并保存它们,将每个引用保存在联接表中。 我不知道先是哪一个,然后再加上另一个。
有人可以帮助我并提供描述此主题的参考资料?

如果您想要多对多双向关系,您应该定义所属方。因此,如果选择课程作为拥有方,映射将如下所示:

public class Course {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String title;

    @ManyToMany(cascade = CascadeType.PERSIST)
    private List<Student> students = new ArraysList<>();
...
有关详细信息:

//definitely I wrote syntax wrong here because i don't copy and paste from code.
Course c =new Course(//fill constrouctor);
CourseRepositoryy.save(c);

student s = new Student(//fill constrouctor);
s.addCourse(c)
StudentRepository.save(s);

or

student s = new Student(//fill constrouctor);
Course c =new Course(//fill constrouctor);
c.addStudents(s);
save(s);
save(c);
public class Course {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String title;

    @ManyToMany(cascade = CascadeType.PERSIST)
    private List<Student> students = new ArraysList<>();
...