一、项目结构如下图
二、保存学生和课程及其学生选课关系代码如下(测试类中不能再有双向关联,否则会报错,因为,都维护了中间表外键,会有中间表外键冲突,如果非要写双向关联,就需要配置中设置某一方维护主键,课程和学生映射配置文件中相应配置inverse为true和false)
package com.hjp.manytomany; import java.util.HashSet; import java.util.Set; /** * Created by JiaPeng on 2016/1/2. */ public class Course { private int id; private String name; public Set<Student> getStudentSet() { return studentSet; } public void setStudentSet(Set<Student> studentSet) { this.studentSet = studentSet; } private Set<Student> studentSet = new HashSet<Student>(); @Override public String toString() { return "Course{" + "id=" + id + ", name='" + name + '\'' + '}'; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }