首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Hibernate 关系映射

第 1 章主要讲解了 Hibernate,它是一个开放源代码的对象关系映射框架。通过对JDBC 进行轻量级的对象封装,使 Java 程序员能够随心所欲地使用面向对象的编程思维来操作数据库。...作为目前最杰出的 0-R Mapping 框架,Hibernate 的核心是能够支持对象间关系的良好映射。...最后不要忘记在hibernate.cfg.xml中引入以上两个映射文件。 下面我们编写一个测试类来测试结果,代码如示例2.4所示。 ​...我们发现只要在对象上设置了关联关系,Hibernate会自动完成到数据库的转换,在Hibernate中可以使用many-to-one标签来映射多对一关联,many-to-one常用属性如表2-1-1所示...使用inverse属性就可以解决这个问题。 inverse可以直译为”反转”,在Hibernate中的含义为是否放弃维护关系。在关联关系中。

8310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Hibernate【映射】续篇

    组件映射 Java主要的类主要有两种方式 组合关系,组合关系对应的就是组件映射 继承关系,继承关系对应的就是继承映射 组件映射实际上就是将组合关系的数据映射成一张表,组件类和被包含的组件类映射成一张表...-- 继承映射, 所有的子类都映射到一张表 --> hibernate-mapping package="cn.itcast.e_extends2"> 保存的是cat和monkey。...session.save(monkey); //提交事务 transaction.commit(); //关闭Session session.close(); } } 每保存一个子类对象需要两条...这里写图片描述 ---- (推荐)每个子类映射一张表, 父类不对应表(2张表) 使用过了一张表保存所有子类的数据,这不符合数据库设计规范 每个子类、父类都拥有一张表..表结构太过于繁琐..添加信息时,过多的

    77160

    【Hibernate】Hibernate的映射关系「建议收藏」

    Hibernate就体现了ORM的思想,将关系数据库中的表映射成对象,开发人员对数据库的操作就可以转化为对对象的操作。...Hibernate映射的基本结构 Hibernate在实现ORM功能的时候主要用到的文件有:映射类(*.java)、映射文件(*.hbm.xml)和数据库配置文件(*.properties/*...映射文件(*.hbm.xml):它是指定数据库表和映射类之间的关系,包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等。...当然还可以把映射类的地址映射信息放在这里。.../> hibernate-configuration> Hibernate实现的关系映射 上面的代码就是基本映射的体现,接下来会继续介绍常用的关系映射

    72610

    Hibernate映射继承关系

    在Hibernate中,继承关系是面向对象编程中常见的一个概念,主要涉及到父类与子类之间的关系。在实际开发过程中,我们有时候需要将继承关系映射到数据库中,以便进行数据操作。...在Hibernate中,继承关系的映射可以使用三种方式,分别是单表继承、多表继承和一对一继承。...Hibernate中的实体类是指对应于数据库中一张表的Java类,继承关系的映射将子类和父类的属性映射到同一张表中或者分别映射到不同的表中。...在Hibernate中,继承关系的映射方式主要有三种,分别是单表继承、多表继承和一对一继承。单表继承在单表继承中,继承关系的子类和父类使用同一个表。...二、单表继承映射示例在本文中,我们将从单表继承开始,展示如何使用Hibernate实现继承关系的映射。下面是两个Java类,我们将使用这两个类来演示单表继承的映射。

    53930

    Hibernate的关联映射

    Hibernate在实现ORM功能的时候主要用到的文件有:映射类(*.java)、映射文件(*.hbm.xml)和数据库配置文件(*.properties/*.cfg.xml),它们各自的作用如下: 映射类...接下来让我们一起走进Hibernate的几种关联映射关系: 单向一对一关联映射(one-to-one): 两个对象之间一对的关系,例如:Person(人)- IdCard(身份证) 有两种策略可以实现一对一的关联映射...DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net...> 注意:因为一对一的主键关联映射扩展性不好,当我们的需要发生改变想要将其变为一对多的时候变无法操作了,所以我们遇到一对一关联的时候经常会采用唯一外键关联来解决问题,而很少使用一对一主键关联。...,最重要的就是一对多的映射,因为它更贴近我们的现实生活,比如:教室和学生就可以是典型的一对多的关系,而我们开发软件的目的之一就是为了解决一些生活中重复性问题,把那些重复的问题交给计算机来帮助我们完成,从而提高我们的工作效率

    1.4K60

    Hibernate的继承映射

    对象模型示例: 继承映射的实现方式有以下三种: (一)每棵类继承树一张表 (二)每个类一张表 (三)每个子类一张表 (一)每棵类继承树一张表 关系模型如下: 映射文件如下: hibernate-mapping...关于鉴别值在存储的时候hibernate会自动存储,在加载的时候会根据鉴别值取得相关的对象 (二)每个类一张表 关系模型如下: 映射文件如下: hibernate-mapping package="com.nnngu...(三)每个子类一张表 关系模型如下: 映射文件如下: hibernate-mapping package="com.nnngu"> 映射到数据库表的时候,依然包含了父类的所有属性的映射字段。...注意:在保存对象的时候id不能重复(不能使用数据库的自增方式生成主键) 本文永久更新地址:https://github.com/nnngu/LearningNotes/blob/master/_posts

    99840

    Hibernate【映射】知识要点

    数据库表 我们一般如下图一样设计数据库表,一般我们不会在User表设计多个列来保存地址的。因为每个用户的地址个数都不一的,会造成数据冗余 创建两张数据表,一张保存着用户的信息,一张保存着地址的信息。...这里写图片描述 一对多和多对一总结 在一对多与多对一的关联关系中,保存数据最好的通过多的一方来维护关系,这样可以减少update语句的生成,从而提高hibernate的执行效率!...当我在部门中不配置员工的关联关系了,那么在操作部门的时候就不能得到员工的数据了【也就是:在保存部门时,不能同时保存员工的数据】 多对多映射 需求:一个项目由多个员工开发,一个员工开发多个项目 设计数据库表...一般地,如果是多对多的映射,我们都会使用一张中间表来保存它们的关联关系…. ?...transaction = session.getTransaction(); //开启事务 transaction.begin(); //在Project映射文件中设置级联保存了

    2.1K70

    Hibernate学习笔记 多表映射

    前面说了Hibernate的单表映射,由于是实体类和数据表之间一对一的映射,所以比较简单。现在就来说说多表映射,这需要涉及到多个实体类和数据表之间的关系。因此稍微复杂一点。...有的同学可能想到了,多对一注解应用到字段上没有问题。但是一对多注解,如何应用到普通字段上呢。所以,这里需要一个集合。...对于单向一对多映射,Hibernate会建立一个映射表,比如这里就会建立一个article_comment表,表的内容就是两张表的主键。orphanRemoval指定当出现孤立数据时是否删除孤立数据。...单向的一对多映射并不高效,如果删除了某文章的某评论,Hibernate进行的操作是这样:首先删除关联表中该文章关联的所有评论,然后再将其他评论添加回关联表中,最后,根据orphanRemoval决定是否删除评论表中孤立的评论...另外Hibernate的多对多映射存在一个问题,就是和单向一对多一样,删除一个关联,需要先删除所有关联,然后将其他的重新插入。

    1.6K10

    初识Hibernate之继承映射

    Hibernate支持以下三种数据表的生成策略: 每个类分层结构一张表 每个子类一张表 每个具体类一张表 一、每个类分层结构一张表      对于这种数据表的生成策略,最终Hibernate会在数据库中生成一张数据表...下面我们通过插入操作了解这种映射策略对具体数据库的实际操作。...teacher.setName("tea1"); teacher.setSalary(10000); session.save(student); session.save(teacher); 将两条不同类型的记录保存到数据库中...使用这种策略方式映射数据表只会生成一张表,但是很大的一个问题是,当很多张表进行集成的时候会导致表结构复杂混乱。...三、每个子类一张表      这种数据表的生成策略的主要思想就是将公共的信息存放在父表中,子表只保存自己独有的字段信息了。

    82180
    领券