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>

相关阅读 >>

c#中关于foreach遍历使用的深入理解

解析.net垃圾回收(gc)原理

关于.net 3.5中的委托实例

c# 中guid生成格式有哪些方法

.net的错误处理机制是什么

泛型的概述和具体使用

.net用repeater实现分页效果的代码详解

c#中多线程之thread类详解

c#中方向键与回车键切换控件焦点的两种方法

编写高性能 .net的实例教程

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



计算机应用基础 2013年修订版
书籍

计算机应用基础 2013年修订版

清华大学出版社

本书是依据教育部全国高校网络教育考试委员会制定的“计算机应用基础”考试大纲(2013年修订版)编写的考试指导用书。“计算机应用基础”是现代远程教育试点高校网络教育实行全国统一考试的4门公共基础课之一。




打赏

取消

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

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

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

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

评论

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