@ManyToMany( cascade = { CascadeType.PERSIST, CascadeType.MERGE })
@JoinTable(name = "TEACHER_TO_STUDENT", joinColumns = { @JoinColumn(name = "TEACHER_ID") }, inverseJoinColumns = { @JoinColumn(name = "STUDENT_ID") })
@Cascade( { org.hibernate.annotations.CascadeType.SAVE_UPDATE })
@OrderBy("name")
private Set<Student> students;
@ManyToMany(mappedBy = "students",cascade = { CascadeType.PERSIST,CascadeType.MERGE })
@OrderBy("id")
private Set<Teacher> teachers = new HashSet<>();
保存的时候 只需要teacher.setStudent(“student的set”);
保存teacher 就可保存中间库
解释:
1、mappedBy:使用此属性的那一端,就意味着放弃了对关系的维护,也不能增删改查中间表的关系;/2、2、@JoinTable:中间表的名字及字段
3、CascadeType:
CascadeType.REMOVE
Cascade remove operation,级联删除操作。
CascadeType.MERGE
Cascade merge operation,级联更新(合并)操作。
CascadeType.DETACH
Cascade detach operation,级联脱管/游离操作。
CascadeType.REFRESH
Cascade refresh operation,级联刷新操作。
CascadeType.PERSIST
级联保存:
CascadeType.ALL
全包含