hibernate中多对多关系映射
案例:
person:一个人可以有担任很多项工作
job:一项工作可以由很多人担任
这在person和job中就形成了多对多的关系,映射成一张新表。
?
package com.pk.mapping;import java.util.HashSet;import java.util.Set;public class Job {private int id;private String jobname;private Set people=new HashSet();public int getId() {return id;}public void setId(int id) {this.id = id;}public String getJobname() {return jobname;}public void setJobname(String jobname) {this.jobname = jobname;}public Set getPeople() {return people;}public void setPeople(Set people) {this.people = people;}}
?
package com.pk.mapping;import java.util.HashSet;import java.util.Set;public class People {private int id;private String name;private Set jobs=new HashSet();public 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 Set getJobs() {return jobs;}public void setJobs(Set jobs) {this.jobs = jobs;}}
?
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.pk.mapping"><class name="Job" table="t_job"><id name="id" column="t_job_id"><generator column="t_job_name"></property><set name="people" table="t_job_people" ><!--外键,必须以本表的id作为参照物--><key column="job_id"></key><many-to-many column="people_id" /></set></class></hibernate-mapping>
?
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.pk.mapping"><class name="People" table="t_people"><id name="id" column="t_people_id"><generator column="t_people_name"></property><set name="jobs" table="t_job_people"><key column="people_id"></key><many-to-many column="job_id"></many-to-many></set></class></hibernate-mapping>
??
?