Hibernate 多对多关联映射

  • java类

 

public class Student {
	private String id;
	private String name;
	private List<Teacher> teachers;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public List<Teacher> getTeachers() {
		return teachers;
	}
	public void setTeachers(List<Teacher> teachers) {
		this.teachers = teachers;
	}
}

public class Teacher {
	private String id;
	private String name;
	private List<Student> students;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public List<Student> getStudents() {
		return students;
	}
	public void setStudents(List<Student> students) {
		this.students = students;
	}
}

 

 

  • 映射文件

 

<hibernate-mapping package="com.woo.demo.hibernate.domain">
	<class name="Student" table="student">
		<id name="id" column="student_id" length="32">
			<generator class="uuid"/>
		</id>
		<property name="name"/>
		<bag name="teachers" table="student_teacher">
			<key column="student_id"></key>
			<many-to-many class="Teacher" column="teacher_id">
			</many-to-many>
		</bag>
	</class>
    
</hibernate-mapping>

<hibernate-mapping package="com.woo.demo.hibernate.domain">
    <class name="Teacher" table="teacher">
    	<id name="id" column="teacher_id" length="32">
    		<generator class="uuid"/>
    	</id>
    	<property name="name"></property>
    	<bag name="students" table="student_teacher" inverse="false">
    		<key column="teacher_id"></key>
    		<many-to-many class="Student" column="student_id"></many-to-many>
    	</bag>
    </class>
</hibernate-mapping>

 

  • 关系数据库结构


Hibernate 多对多关联映射
 
Hibernate 多对多关联映射
 
Hibernate 多对多关联映射