广告
返回顶部
首页 > 资讯 > 精选 >Hibernate映射关联是什么
  • 669
分享到

Hibernate映射关联是什么

2023-06-17 21:06:49 669人浏览 独家记忆
摘要

这篇文章主要讲解了“Hibernate映射关联是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate映射关联是什么”吧!Hibernate映射关联关系和我们现实世界里事物的关

这篇文章主要讲解了“Hibernate映射关联是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate映射关联是什么”吧!

Hibernate映射关联关系和我们现实世界里事物的关联关系一样。比如在UML语言中,以客户Customer和订单Order的关系为例。一个客户可以发送多个订单, 而一个订单只能属于一个客户,这是一对多的关联,因此可以成为单向关联。如果同时包含了两两种关联关系,就成为双向关联。在关系数据库中只有外键参照主键的关系。所以关系数据库实际上至支持一对一,或一对多的单向关系。在类于类之间的关系中。要算多对一关系和数据库中的外键参照主键关系最匹配了。因此如果使用单向关联从订单到客户的多对一单向关联,在订单类中就要定义一个客户的属性。表示这个订单属于哪个客户,而客户类就无需定义存放订单的集合属性了。下面写一个简单的例子。

//首先定义客户类  public class Customer implements Sreializable {  private Long id;  private String name;  //省略属性的访问方法  }  //然后定义订单类  public class Order implements Sreializable {  private Long id;  private String orderName;  private Customer customer;  //省略属性的访问方法,要注意的是Customer的访问方法.  }

Customer类的所有属性和CUSTOMERS表的所有属性一一对应,创建起来就比较简单了。下面主要看一下Order类的映射文件。

<property name=\"orderName\" type=\"string\"> <column name=\"ORDER_NAME\" length=\"15\"/> </property>

因为customer属性是是Customer类型,而ORDERS表的CUSTOMER_ID是整数类型,是不匹配的。所以我们不能用普通的<property>元素来定义,而我们需要使用<many-to-one>元素来配置了。

  1. <many-to-one name=\"customer\" column=\
    "CUSTOMER_ID\" class=\"包名.Customer\" not-null=\"true\"/> 

< many-to-one>元素负责建立Order订单类的customer属性和数据库中的CUSTOMER_ID外键字段之间的映射。
◆name:设定映射文件的属性名
◆column:设定和持久化类对应的表的外键名
◆class:设定持久化类的属性的类型,这里指定具体的类,也就是主键存在的类
◆not-null:设定为true表示customer属性不允许为null,默认是false,这个属性会影响到bhm2ddl工具,会为ORDERS 表的CUSTOMER_ID外键设置为不允许空的约束,但是不会影响到hbm2java工具生长java源代码。此外还会影响到Hibernate运行时的行为,在保存Order对象的时候会检查customer属性是否为null。用hbm2ddl编译之后得到的数据库文件如下:

  1. create table CUSTOMERS (  

  2. ID bigint not null,  

  3. NAME varchar(15),  

  4. primary key (ID)  

  5. );  

  6. create table ORDERS (  

  7. ID bigint not null,  

  8. ORDER_NUMBER varchar(15),  

  9. CUSTOMER_ID bigint not null,  

  10. primary key (ID)  

  11. );  

  12. alter table ORDERS add index FK8B7256E516B4891C (CUSTOMER_ID), add constraint 
    FK8B7256E516B4891C foreign key (CUSTOMER_ID) references CUSTOMERS (ID); 

看到结果我们可以简单的把<many-to-one>理解为在数据库中,创建外键的作用。上边这个例子就简单的演示了Hibernate映射关联关系,至于一对多的关联关系比这个稍微复杂一点。而且可以看出,当Hibernate持久化一个临时对象的时候,在默认的情况下它不会自动持久化关联其他临时对象,而是会抛出TransientObjectException异常。如果希望Hibernate持久化对象的时候也自动持久化说关联的对象,就要把<many-to-one>元素的cascade属性设置为save-update,表示级联操作的意思,cascade属性的默认值为none。当这个属性设置OK了。数据库就实现了级联保存更新的操作。

感谢各位的阅读,以上就是“Hibernate映射关联是什么”的内容了,经过本文的学习后,相信大家对Hibernate映射关联是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Hibernate映射关联是什么

本文链接: https://www.lsjlt.com/news/293228.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Hibernate映射关联是什么
    这篇文章主要讲解了“Hibernate映射关联是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate映射关联是什么”吧!Hibernate映射关联关系和我们现实世界里事物的关...
    99+
    2023-06-17
  • Hibernate映射一对多关联关系是什么
    这篇文章主要讲解了“Hibernate映射一对多关联关系是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate映射一对多关联关系是什么”吧!在域模型中,类和类之间最普通的关系...
    99+
    2023-06-17
  • Hibernate框架关系映射
    接触Hibernate也有一小段的时间了,愈发的觉得Hibernate是个神奇的东西,为什么这么说呢?因为你可以不懂一行sql,直接面向对象,就可以将数据直接保存到数据库去!!你还可以保存一个对象,然后一次...
    99+
    2022-10-18
  • Hibernate的集合映射是什么
    这期内容当中小编将会给大家带来有关Hibernate的集合映射是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。POJOs如下:Customer类---->customer表Order类对应---...
    99+
    2023-06-17
  • Hibernate继承关系树的映射方式是什么
    这篇文章主要介绍“Hibernate继承关系树的映射方式是什么”,在日常操作中,相信很多人在Hibernate继承关系树的映射方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Hibernate继承关系...
    99+
    2023-06-17
  • hibernate 一对多 关系映射
    在关系中,或多或少的表之间有复杂的关联关系这里测试 一对多 关联关系的配置开发步骤就不多说了。直接看一个示例。users 用户 和  shop商品订单表分析:一个用户可以有多个商品订单,一个订单只...
    99+
    2022-10-18
  • hibernate 多对多关系映射
    学生 和 课程就是一种多对多的关系映射,那么再hibernate中,对于多对多关系在怎么配置?和一些注意的事项?简单测试下。建表实体配置文件和映射测试1。使用oracle ,建表sqlcreate ...
    99+
    2022-10-18
  • Hibernate高级集合映射是什么
    本篇内容主要讲解“Hibernate高级集合映射是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Hibernate高级集合映射是什么”吧!Hibernate高级集合映射主要分为有序集合、双向...
    99+
    2023-06-17
  • Hibernate映射之基本类映射和对象关系映射详解
    回想一些我们在没有学习ssh的时候,我们建立数据库的表时,首先是数据库建模E-R图,然后再通过实体模型来建立关系模型,再建立相应的表。实体间存在三种关系,一对一,一对多(或者说多对一),多对多。而如今我们要根据类来映射相应的表,那只能是通过...
    99+
    2023-05-31
    hibernate 对象 映射
  • hibernate中的对象关系映射
    Hibernate的本质就是对象关系映射(ObjectRelational Mapping),ORM实现了将对象数据保存到数据库中,以前我们对关系表进行操作,执行增删改查等任务,现在我们不再对关系表进行操作,而是直接对对象操作。hibern...
    99+
    2023-05-31
    hibernate 映射 te
  • 【MyBatis框架】关联映射
    关系映射 1. 关联映射概述2. 环境搭建3.处理字段名和属性名不一致的情况4. 处理一对一映射5. 处理多对一映射5.1 级联方式处理5.2 使用association处理映射关系5.3 分...
    99+
    2023-10-28
    mybatis java 数据库
  • 详解hibernate双向多对多关联映射XML与注解版
    双向多对多关联映射原理:假设,一个员工可能有多个角色,一个角色可能有多个员工,从员工或角色的角度看,这就是多对多的关系,不管从哪一个角度看,都是多对多的联系。多对多关联映射关系一般采用中间表的形式来实现,即新增一种包含关联双方主键的表。实现...
    99+
    2023-05-31
    hibernate 映射 te
  • Hibernate映射怎么实现
    这篇文章主要讲解了“Hibernate映射怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate映射怎么实现”吧!我曾对Hibernate有很深刻的印象,但我遇到的一个问题...
    99+
    2023-06-17
  • Hibernate对象关系映射举例分析
    本篇内容介绍了“Hibernate对象关系映射举例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!同样由于Hibernate官方文档的影响...
    99+
    2023-06-17
  • 浅谈hibernate中多表映射关系配置
    1.one-to-many 一对多关系的映射配置(在一的一方实体映射文件中配置)<!-- cascade属性:级联操作属性 save-update: 级联保存,保存客户时,级联保存客户关联的联系人 delete:级联...
    99+
    2023-05-31
    hibernate 多表 映射关系
  • Hibernate如何使用hbm.xml配置映射关系
    这篇文章将为大家详细讲解有关Hibernate如何使用hbm.xml配置映射关系,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在使用hibernate时,经常需要配置与类对应的hbm.xml文件,并在其中...
    99+
    2023-05-30
    hibernate
  • Mybatis关联映射举例详解
    目录一、关联映射二、一对一多对一的关系1.第一种形式-连表查询2.第二种形式-分步查询三、一对多第一种形式按照结果嵌套处理第二种形式按照查询嵌套处理一、关联映射 举例关系说明 数据库...
    99+
    2022-11-13
  • Hibernate一对多数据关联是什么
    本篇内容主要讲解“Hibernate一对多数据关联是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Hibernate一对多数据关联是什么”吧!Hibernate一对多数据关联。指的是单向一对...
    99+
    2023-06-17
  • Hibernate映像文件是什么
    这篇文章主要讲解了“Hibernate映像文件是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate映像文件是什么”吧!Hibernate映像文件实例们已经从改用这样的纯净的...
    99+
    2023-06-17
  • Hibernate操作延迟加载的关联是什么
    这篇文章主要讲解了“Hibernate操作延迟加载的关联是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate操作延迟加载的关联是什么”吧!默认情况下,Hibernate 3...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作