上一篇文章Hibernate从入门到精通(九)一对多双向关联映射中我们讲解了一下关于一对多关联映射的相关内容,这次我们继续多对多单向关联映射。
多对多单向关联映射
在讲解多对多单向关联映射之前,首先看一下相关类图和代码,具体如下:
public class Role {
private int id;
private String name;
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 class User {
private int id;
private String name;
private Set roles;
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 getRoles() {
return roles;
}
public void setRoles(Set roles) {
this.roles = roles;
}
}
多对多单向关联和一对多单向关联的异同
多对多单向关联映射与一对多单向关联映射类似,都是在指向端被加载时,将被指向段加载上来,即单向的约束,所不同的是将一对多中一的一端从一变成了多而已,这点可以从类图上明显看出。但从代码上看一对多和多对多的区别则很难看出两者的区别。(参考Hibernate从入门到精通(八)一对多单向关联映射)
接下来我们再从存储结构上分析两者的区别和联系。具体如下:
通过上述表结构明显可以看出,在多对多关联映射中,存在第三张表,用以维护关联关系两端对象的对应关系,而这在一对多中则是不存在的。为什么会这样呢?这是因为配置文件的配置不同所导致的这样的映射结果。具体如下:
<class name="com.zs.hibernate.User" table="t_user">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="roles" table="t_user_role">
<key column="user_id"/>
<many-to-many class="com.zs.hibernate.Role" column="role_id" />
</set>
</class>
<class name="com.zs.hibernate.Role" table="t_role">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
</class>
通过对比上篇文章Hibernate从入门到精通(八)一对多单向关联映射中映射文件可以看出在一对多单向关联中映射配置的属性为<one-to-many/>,而多对多关联映射中配置的属性为<many-to-many/>,这就导致了映射的两种不同结果和两种不同的解决方案。
到此为止关于一对多单向关联映射我们就基本讲完了,下次我们继续讲解关联映射的最后一个内容多对多双向关联映射。
分享到:
相关推荐
Hibernate入门到精通,分享Hibernate的干货,带你入门,走向精通。
Hibernate从入门到精通1
包含《多对多双向关联映射》《多对一单向关联映射》《多对一双向关联映射》《一对多单向关联映射》等文档,并有图解及例子,非常适合新手学习,尤其是刚刚接触hibernate,对映射关系不清楚的。。。。
Hibernate从入门到精通(六)一对一双向关联映射 - 赵帅 廊坊师范学院信息技术提高班
Hibernate 多对一外键单向关联 Hibernate 多对一连接表单向关联 Hibernate 多对多单向关联 Hibernate 一对一外键双向关联 Hibernate 一对一主键双向关联 Hibernate 一对一连接表双向关联 Hibernate 一对多外键双向...
hibernate 从入门到精通 hibernate spring framwork
最经典的hibernate教程_从入门到精通_第一篇(共四篇)
这里包含了hibernate多对一单向关联关系实现源码,希望对你有用。
Hibernate教程1_从入门到精通Hibernate教程1_从入门到精通Hibernate教程1_从入门到精通Hibernate教程1_从入门到精通
Hibernate从入门到精通
hibernate关联映射注解多对多单向关联、
NULL 博文链接:https://1028826685.iteye.com/blog/1536060
hibernate单向一对多关联映射(注解版)
Hibernate关联关系映射 单向关联 │ ├─ 一对一外键单向关联 │ ├─ 一对一主键单向关联 │ ├─ 一对一连接表单向关联 │ ├─ 一对多外键单向关联 │ ├─ 一对多连接表单向关联 │ ├─ 多对一外键单向关联 │ ...
hibernate 映射关系学习入门 多对多实体映射 源码
经典hibernate教程,从入门到精通经典hibernate教程,从入门到精通经典hibernate教程,从入门到精通经典hibernate教程,从入门到精通经典hibernate教程,从入门到精通经典hibernate教程,从入门到精通经典hibernate教程,从...
这是一个关于hibernate入门到精通的书,希望可以帮到你
hibernate单向多对多映射(XML版)
NULL 博文链接:https://lijunabc.iteye.com/blog/438173
该资源包含了一些常用的hibernate关联映射实例。包括一对多,多对多,继承映射,等,是学习hibernate的必备品