【Hibernate】多对一与一对多关联映射

2024-08-26 03:38
文章标签 关联 hibernate 映射 一对

本文主要是介绍【Hibernate】多对一与一对多关联映射,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


        在关联映射中,一对多和多对一关系是相对而言的,以用户分组为例(如上图),从用户的角度来看是多对一的关系,多个用户对应一个组;从组的角度来看是一对多关系,一个组对应多个用户。

原理

         一对多和多对一映射的原理是一样的,都是在多的一端加入一个外键指向一的一端

区别

         多对一关联映射维护的关系:多指向一的关系,如果维护了多指向一的关系,那么加载多的时候会把一加载上来。即加载用户可以知道这个用户属于哪个组

         一对多关联映射维护的关系:一指向多的关系,如果维护了一指向多的关系,那么加载一的时候会把多加载上来。即加载组可以知道这个组下的所有用户

实体

多对一

    Group类

public class Group {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;}
}

    User

public class User {private int id;private String name;private Group group;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 Group getGroup() {return group;}public void setGroup(Group group) {this.group = group;}
}

一对多

Group

public class Group {private int id;private String name;private Set user;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;}
}

User

public class User {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;}}

映射文件

多对一

<hibernate-mapping><class name="cn.itcast.oa.domain.Group" table="t_group"><id name="id"><generator class="native"></generator></id><property name="name"/></class>
</hibernate-mapping><hibernate-mapping><class name="cn.itcast.oa.domain.User" table="t_user"><id name="id"><generator class="native"/></id><property name="name"/><many-to-one name="group"/></class>
</hibernate-mapping>

一对多

<hibernate-mapping><class name="cn.itcast.oa.domain.User" table="t_user"><id name="id"><generator class="native"/></id><property name="name"/></class>
</hibernate-mapping><hibernate-mapping><class name="cn.itcast.oa.domain.Group" table="t_group"><id name="id"><generator class="native"></generator></id><property name="name"/><set name="user"><key column="groupId"/><one-to-many class="cn.itcast.oa.domain.User"/></set></class>
</hibernate-mapping>


效果展示

虽然一对多和多对一在配置上边是不一样的,但是最终形成的表还是相同的


这篇关于【Hibernate】多对一与一对多关联映射的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1107445

相关文章

springboot+mybatis一对多查询+懒加载实例

《springboot+mybatis一对多查询+懒加载实例》文章介绍了如何在SpringBoot和MyBatis中实现一对多查询的懒加载,通过配置MyBatis的`fetchType`属性,可以全局... 目录springboot+myBATis一对多查询+懒加载parent相关代码child 相关代码懒

SpringMVC配置、映射与参数处理​入门案例详解

《SpringMVC配置、映射与参数处理​入门案例详解》文章介绍了SpringMVC框架的基本概念和使用方法,包括如何配置和编写Controller、设置请求映射规则、使用RestFul风格、获取请求... 目录1.SpringMVC概述2.入门案例①导入相关依赖②配置web.XML③配置SpringMVC

Elasticsearch 的索引管理与映射配置实战指南

《Elasticsearch的索引管理与映射配置实战指南》在本文中,我们深入探讨了Elasticsearch中索引与映射的基本概念及其重要性,通过详细的操作示例,我们了解了如何创建、更新和删除索引,... 目录一、索引操作(一)创建索引(二)删除索引(三)关闭索引(四)打开索引(五)索引别名二、映射操作(一

使用MapStruct实现Java对象映射的示例代码

《使用MapStruct实现Java对象映射的示例代码》本文主要介绍了使用MapStruct实现Java对象映射的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、什么是 MapStruct?二、实战演练:三步集成 MapStruct第一步:添加 Mave

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

Kotlin Map映射转换问题小结

《KotlinMap映射转换问题小结》文章介绍了Kotlin集合转换的多种方法,包括map(一对一转换)、mapIndexed(带索引)、mapNotNull(过滤null)、mapKeys/map... 目录Kotlin 集合转换:map、mapIndexed、mapNotNull、mapKeys、map

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

Java继承映射的三种使用方法示例

《Java继承映射的三种使用方法示例》继承在Java中扮演着重要的角色,它允许我们创建一个类(子类),该类继承另一个类(父类)的所有属性和方法,:本文主要介绍Java继承映射的三种使用方法示例,需... 目录前言一、单表继承(Single Table Inheritance)1-1、原理1-2、使用方法1-

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

Python+PyQt5实现文件夹结构映射工具

《Python+PyQt5实现文件夹结构映射工具》在日常工作中,我们经常需要对文件夹结构进行复制和备份,本文将带来一款基于PyQt5开发的文件夹结构映射工具,感兴趣的小伙伴可以跟随小编一起学习一下... 目录概述功能亮点展示效果软件使用步骤代码解析1. 主窗口设计(FolderCopyApp)2. 拖拽路径