many2many 双向

来源:互联网 发布:调音器节拍器软件 编辑:程序博客网 时间:2024/05/01 07:58

首先annotation

@Entitypublic class Student {private int id;private String name;private Set<Teacher> teachers=new HashSet<Teacher>();@ManyToMany(mappedBy="students")public Set<Teacher> getTeachers() {return teachers;}public void setTeachers(Set<Teacher> teachers) {this.teachers = teachers;}public Student() {super();// TODO Auto-generated constructor stub}@Id@GeneratedValuepublic 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;}}


 

@Entitypublic class Teacher {private int id;private String name;private Set<Student> students=new HashSet<Student>();@ManyToMany@JoinTable(name="t_s",joinColumns=@JoinColumn(name="t_teacher"),inverseJoinColumns=@JoinColumn(name="t_student"))public Set<Student> getStudents() {return students;}public void setStudents(Set<Student> students) {this.students = students;}@Id@GeneratedValuepublic 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;}public Teacher() {super();// TODO Auto-generated constructor stub}}


接着是xml的

 

<hibernate-mapping package="com.sl.many2many"><class name="Student"><id name="id" column="s_id"><generator class="native" /></id><property name="name" column="s_name"/><set name="teachers" table="s_t"><key column="t_student"></key><many-to-many column="t_teahcer" class="Teacher"></many-to-many></set></class></hibernate-mapping>


 

 

<hibernate-mapping package="com.sl.many2many"><class name="Teacher"><id name="id" column="t_id"><generator class="native" /></id><property name="name" column="t_name"/><set name="students" table="s_t"><key column="teacherID"></key><many-to-many column="studentID" class="Student"></many-to-many></set></class></hibernate-mapping>