hibernate中多对多关系映射
程序员文章站
2022-05-31 20:23:35
...
案例:
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 class="native"></generator> </id> <property name="jobname" column="t_job_name"></property> <set name="people" table="t_job_people" > <!--外键,必须以本表的id作为参照物--> <key column="job_id"></key> <many-to-many class="People" 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 class="native"></generator> </id> <property name="name" column="t_people_name"></property> <set name="jobs" table="t_job_people"> <key column="people_id"></key> <many-to-many class="Job" column="job_id"></many-to-many> </set> </class> </hibernate-mapping>
上一篇: GTK+ 3.2发布,跨平台的图形工具包