示例:一个老师(Teacher)有多个学生(Student),一个学生有多个老师。
public class Teacher {
private Integer id;
private String name;
private Set<Student> students = new HashSet<Student>();
// getter and setter
}public class Student {
private Integer id;
private String name;
private Set<Teacher> teachers = new HashSet<Teacher>();
// getter and setter
}用XML映射
<hibernate-mapping package="com.shen.hibernate4.entity"> <class name="Teacher" table="tb_teacher"> <id name="id"> <generator class="identity" /> </id> <property name="name" /> <set name="students" table="tb_student_teacher"> <key column="teacher_id" /> <many-to-many class="Student" column="student_id" /> </set> </class> </hibernate-mapping>
<hibernate-mapping package="com.shen.hibernate4.entity"> <class name="Student" table="tb_student"> <id name="id"> <generator class="identity" /> </id> <property name="name" /> <!-- 不维护关联关系 --> <set name="teachers" table="tb_student_teacher" inverse="true"> <key column="student_id" /> <many-to-many class="Teacher" column="teacher_id" /> </set> </class> </hibernate-mapping>
用@Annotation映射
@Entity
@Table(name = "tbl_teacher")
public class Teacher {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
@ManyToMany
@JoinTable(name = "tb_student_teacher", joinColumns = @JoinColumn(name = "teacher_id"), inverseJoinColumns = @JoinColumn(name = "student_id"))
private Set<Student> students = new HashSet<Student>();
// getter and setter
}@Entity
@Table(name = "tbl_student")
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
//不维护关联关系
@ManyToMany(mappedBy = "students")
private Set<Teacher> teachers = new HashSet<Teacher>();
// getter and setter
}本文出自 “冰葫芦” 博客,请务必保留此出处http://shenlang7.blog.51cto.com/3102414/1742813
原文:http://shenlang7.blog.51cto.com/3102414/1742813