Hibernate多对一及一对多关联关系理解及区别

简介:
关联关系的本质是将关联关系映射到数据库中。关联关系在对象模型中体现为内存中的一个或多个引用。  一对多关系: 一对多关系 分为 单向一对多/多对一关系 双向多对一 关系。
    •  单向一对多/多对一关系 只需在 方进行配置,
    •  双向多对一关系 需要在关联双方均加以配置。 双向多对一关联就是在多方和一方都进行配置,并在  方通过属性inverse="true"设置控制关系反转
    注:单向多对一关联是最常见的单向关联关系。
    注:双向多对一关联是最常见的双向关联关系。双向多对一关联实际上是 多对
一对多 关联的组合。
 
多对一及一对多关联映射的区别(单向):
不管多对一还是一对多,都是在""的一端添加一个外键指向""的一端,只不过是多对一是在多的一端为其自己添外键,而一对多则是在一的一端为多的一端添加外主键。
 
 
模型:一个用户组(group)对应多个用户(user)。
 
多对一关联映射:是在""的一端添加一个外键指向""的一端,它维护的关系为多到一的关系,如:当载入一个用户(user)时将会同时载入组(group)的信息。它的关系映射将写在多的一端(user):    
  < many-to-one  name="group"   column = "relatedGroup"  cascade = "all"  />     此时它在多的一端( user )添加了一个外键 relateGroup 指向一的一端。在多的一端通过 group 维护一的一端。
 
一对多关联映射:是在""的一端添加一个外键指向""的一端,它维护的关系为一到多的关系,如:当载入一个组(group)时将会同时载入此组用户(user)的信息。它的关系映射将写在一的一端(group):                           
  < set  name="users"   order-by = "name" >
 < key  column = "relatedGroup" />
  < one-to-many  class = "com.dvnchina.hibernate.User" />         
 </ set >      
此时通过 < key  column = "relatedGroup" /> 在多的一端( user )添加了一个外键 relateGroup 指向一的一端。在一的一端通过 users 维护多的一端。  
                          
总之,一对多和多对一的映射策略是一致的,都是通过在""的一端添加一个外键指向""的一端,只是站的角度不同。









本文转自 yzzh9 51CTO博客,原文链接:http://blog.51cto.com/java999/119424,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
SQL Java 数据库连接
hibernate和mybatis的区别
hibernate和mybatis的区别
|
6月前
|
SQL XML Java
mybatis基本构成&mybatis与hibernate的区别&添加mybatis支持
mybatis基本构成&mybatis与hibernate的区别&添加mybatis支持
|
4月前
|
SQL Java 数据库连接
MyBatis与Hibernate区别
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。
|
3月前
|
SQL 存储 Java
MyBatis与Hibernate有什么区别?
MyBatis与Hibernate有什么区别?
19 1
|
4月前
|
SQL XML Java
Hibernate - 单向多对一关联关系映射
Hibernate - 单向多对一关联关系映射
15 0
|
4月前
|
SQL 缓存 Java
聊聊Hibernate和Mybatis的区别
聊聊Hibernate和Mybatis的区别
27 0
|
6月前
|
Java 关系型数据库 数据库连接
Spring Boot 学习研究笔记(八) - Spring Data JPA与Hibernate区别及配置(2)
Spring Boot 学习研究笔记(八) - Spring Data JPA与Hibernate区别及配置
|
6月前
|
SQL Java 数据库连接
Spring Boot 学习研究笔记(八) - Spring Data JPA与Hibernate区别及配置(1)
Spring Boot 学习研究笔记(八) - Spring Data JPA与Hibernate区别及配置
|
9月前
|
SQL XML Java
Hibernate框架【四】——基本映射——多对一和一对多映射
Hibernate框架【四】——基本映射——多对一和一对多映射
102 0
|
11月前
|
SQL Java 数据库连接
Java 最常见的面试题:mybatis 和 hibernate 的区别有哪些?
Java 最常见的面试题:mybatis 和 hibernate 的区别有哪些?
124 0