hibernate中多对多关系映射


本文摘自PHP中文网,作者巴扎黑,侵删。

案例:

person:一个人可以有担任很多项工作

job:一项工作可以由很多人担任

这在person和job中就形成了多对多的关系,映射成一张新表。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

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;

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

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;

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<?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>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<?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>

相关阅读 >>

详细介绍.net并行与多线程学习基础

c#实现身份证识别功能的图文代码详解

c#线程控制的实例详解

c#如何生成二维码的示例分享

.net是什么

oracle clob字段过长保存出错改如何解决?

.net使用cache框架的实例介绍

core实现全面扫盲贴的asp方法详解

.net中创建webservice服务的实例分析(图文)

c#中委托和匿名委托的具体介绍

更多相关阅读请进入《hibernate》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...