兩個表屬於多對多關系 如 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"