@ManyToMany 两个表多对多关联
两个表属于多对多关系 如 Teacher <=> Student
表teacher 主键 id
表student 主键id
中间关联表 teacher_student 两个字段 t_id 和 s_id
@Entity
Student 设置多对多
@ManyToMany(cascade = CascadeType.PERSIST, fetch=FetchType.LAZY) @JoinTable(name="teacher_student",joinColumns={@JoinColumn(name="s_id")},inverseJoinColumns={@JoinColumn(name="t_id")}) private Set<Teacher> teachers;
Teacher 设置多对多
@ManyToMany(cascade = CascadeType.PERSIST, fetch=FetchType.LAZY) @JoinTable(name="teacher_student",joinColumns={@JoinColumn(name="t_id")},inverseJoinColumns={@JoinColumn(name="s_id")}) private Set<Student> students;
1、关系两边都作为主控;
2、joinColumns中@JoinColumn(name="t_id") 其中t_id为JoinTable 中的外键,
由于 Student 和Teacher 的主键都为id 这边就省略referencedColumnName="id"