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

Hiberante知识点梳理

它支持各种关系数据库,从一对一到多对多的各种复杂关系。 4....也就是说,如果此对象在数据库中不存在的话,就不能使用update()方法。 saveOrUpdate()方法操作的对象既可以使持久化了的,也可以使没有持久化的对象。...但它不会级联删除 delete: 级联删除, 但不具备级联保存和更新 all-delete-orphan: 在解除父子关系时,自动删除不属于父对象的子对象, 也支持级联删除和级联保存更新. all: 级联删除..., 级联更新,但解除父子关系时不会自动删除子对象. delete-orphan:删除所有和当前对象解除关联关系的对象 15. fetch 抓取策略,在配置文件的Set标签配置 join : 左外链接...POJO的要求 必须有一个无参的构造方法 不能为final 属性要为Private,并且提供get/set 18. inverse 在多对多关系中默认为flase 表示为两端都在维护关系 应该改为一端维护关系而不是两端

1.4K00

Hibernate_day02总结

Hibernate_day02总结 今日内容 l Hibernate持久化对象的状态 l Hibernate的一级缓存 l Hibernate操作持久化对象的方法 l Hibernate 关联关系映射...save.如果是脱管执行update.将内存中出现的OID相同的对象进行合并. 1.4.5 删除方法: 将持久态对象转成瞬时. 1.5 Hibernate的关联关系的映射.(*****) 1.5.1 表之间的关系...一对一 * 建表原则: * 唯一外键对应:假设一对一是一个一对多的关系.在多的一方创建外键指向一的一方的主键.将外键设置为unique. * 主键对应:一个表的主键从另一个表的主键获得. 1.5.2 Hibernate...完成一对多的关联关系的配置(客户和订单的案例) 步骤一:创建客户和订单的实体: 步骤二:创建客户和订单的映射文件: Order.hbm.xml hibernate-mapping> 删除:只能在一对多的情况下使用.认为一对多的一的一方是父方.多的一方子方. * 孤儿删除指的是删除子的一方没有外键值得那些数据.

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

    hibernate笔记加强版「建议收藏」

    映射文件里须要映射的关系: 数据库中的表 java中类 表中的字段名 类中的属性名 表中字段的类型 类中属性的类型 表中关系(一对一,一对多,多对多等) java中面向对象的关系 那么通过此*.hbm.xml...1. java类和数据库中的表须要映射的关系: 数据库中的表 java中类 表中的字段名 类中的属性名 表中字段的类型 类中属性的类型 表中关系(一对一,一对多,多对多等) java中面向对象的关系 那么通过此...的关系操作 hiberante中的关系就是怎么将java中的面向对象转换成数据库中的一对一、一对多、多对多 关系 。...//这里仅仅是移除关系(就是将学生的外键删除)。...不是移除关系) * 2在删除班级之前。

    1K20

    如何在 Spring Boot 中 读写数据

    它为开发人员提供了一种对象/关联映射工具,实现管理应用中的关系数据,从而简化Java对象的持久化工作。很多ORM框架都是实现了JPA的规范,比如:Hibernate、EclipseLink 等。...JPQL查询语言:以面向对象的方式来查询数据。 1.3 Hibernate Hibernate 框架可以将应用中的数据模型对象映射到关系数据库表的技术。...CascadeType.MERGE | 级联合并;修改了子实体,保存父实体时也会同时保存子实体(常用)。 CascadeType.REMOVE | 级联删除;删除父实体时,会级联删除关联的子实体。...(1)@OneToOne @OneToOne 用来表示一对一的关系,放置在主导类上。...所以,如果站在部门的角度来看 在分析用户与部门之间的关系时,一个员工只能属于一个部门,但是一个部门可以包含有多个员工,如果我们站在部门的角度来看,部门与员工之间就是一对多的关系,在部门实体类 Department

    15.9K10

    day30_Hibernate学习笔记_02

    表之间关系存在3种:一对多、多对多、一对一。(回顾) ? 一对多:1表(主表)必须主键和多表(从表)必须外键,主表主键与从表外键形成主外键关系。...多对多:提供中间表(从表),提供2个字段(外键)分别对应两个主表。 一对一:非常少见。 如何使用面向对象的思想通过代码描述对象与对象之间关系?...的关联关系映射(一对多) 4.1、一对多实现【掌握】 4.1.1、实现类 Customer.java package com.itheima.domain; import java.util.HashSet...();      }     // 多表关系 =>  删除     // 直接删除 Customer时 ,会先移除 Customer中引用的外键,然后再删除Customer。     ...().commit();         session.close();     } } 4.2.3、孤儿删除   一对多关系中存在父子关系。

    1.1K20

    day31_Hibernate学习笔记_03

    一、Hibernate的关联关系映射(多对多) 在数据库表中如何表达多对多关系:   使用中间表,分别引用两方的ID。 在对象中如何表达多对多关系:   两方都使用集合表达。...在配置文件中如何表达一对多关系:     删除时,任意删除一条记录,整个关系链数据都会被删除。...应用程序如果希望访问游离状态的代理类实例,必须保证它在持久化状态时已经被初始化。 (1)一对多或者多对多关联检索中使用。(2)应用程序不需要立即访问或者根本不会访问的对象延时检索使用。...非迫切)   =>  inner join     // List     //      Object[] => [Customer, Order]     // 非迫切连接会将父与子对象装入数组中分别返回

    2.5K40

    Elasticsearch(二) 文档关系分析

    数据关系,数据特点以及在性能上需求都会影响着我们如何设计索引映射。 对象类型(最擅长处理一对一关系) 将对象作为文档的一个字段值。...由于嵌套对象 被索引在独立隐藏的文档中,无法直接查询它们。...优点: 明确对象数组中对象的边界。 缺点: 一旦子文档发生改变需要重新索引整篇文档 父子关系 父子关系相对于嵌套文档,更为灵活,因为父辈和子辈都是独立的elasticsearch文档,可以自行管理。...创建,修改或者删除子文档时,不影响父文档和其他子文档,在子文档数量较多时尤其适用。 子文档可以单独作为搜索结果返回。...反规范化,应用层连接(多对多关系) 针对多对多的关系,冗余大量的数据可能会成为比较好的解决方法,将多对多的关系,在其中一个方向上冗余数据从而变成一对多的关系,然后在根据数据特点和对查询性能,索引性能的需求选择嵌套类型或者时父子关系

    1.2K30

    day30_Hibernate复习_02(补刀)

    其他api:     evict();    将缓存中的对象移除     clear();    清空一级缓存     refresh(Object);    刷新 => 强制刷新缓存中的对象 => (...二、多表设计:一对多 和 多对一  一对多的表达:     在数据库表中如何表达一对多关系:在多的一方的表中加入外键,引用的是一的一方的主键。     ...在对象中如何表达一对多关系:在一的一方使用集合表达持有多的一方,在多的一方引用一的一方的对象。     ...在配置文件中如何表达一对多关系: 一方:                    多的一方的外键名称" />...name="多的一方属性的引用名称" column="多的一方的外键名称" class="一的一方所属对象的完整类名" /> 一对多的操作:     inverse:一的一方要不要放弃维护外键关系

    36720

    SqlAlchemy 2.0 中文文档(十三)

    在不删除的情况下删除集合涉及将外键列设置为 NULL 以进行一对多关系,或者删除相应的关联行以进行多对多关系。...一对多集合 仅针对常规的一对多集合,WriteOnlyCollection.insert()方法将生成一个预先建立了与父对象相对应的 VALUES 条件的Insert构造。...不删除的集合移除涉及将外键列设置为 NULL(对于一对多关系)或删除相应的关联行(对于多对多关系)。...一对多集合 对于普通的一对多集合,WriteOnlyCollection.insert()方法将产生一个预先建立了与父对象对应的 VALUES 条件的Insert构造。...在不删除的情况下移除集合涉及将外键列设置为 NULL(对于 一对多 关系)或删除相应的关联行(对于 多对多 关系)。

    22210

    系统学习javaweb-10-Hibernate的配置与api操作

    所有子类映射到一张表、每个类映射一张表、每个子类映射一张表) 4.1 集合映射 (collection)用户与收货地址,一个用户对应多个地址 4.2 多对一与一对多映射 在一对多与多对一的关联关系中...配置一对多与多对一:“双向关联” 只配置一对多:“单项一对多” 只配置多对一:“单项多对一” (配置了哪一方,哪一方才有维护关联关系的权限) 【Inverse控制反转属性】 Inverse...如果删除的记录没有被引用,可以直接删除。...级联保存、更新、删除 4.3 多对多映射 维护关联关系 设置inverse属性,在多对多种维护关联关系的影响 1....删除数据 inverse=false,有控制权,先删除中间表数据,再删除自身 inverse=true,没有控制权,如果删除的数据有被引用,会报错! 否则,才可以删除 4.4 一对一映射 1.

    94520

    Java面试合集

    ④一个类只能有一个父类,也就是类只能是单继承。 ⑤一个接口可以有多个父类,也就是接口可以是多继承。 实际项目开发中,一个类继承于另一个类,那么前者就是后者的子类,反则反之。 什么是封装?...①多态就是对象拥有多种形态:引用多态和方法多态。 ②引用多态:父类的引用可以指向本类对象、父类的引用可以指向子类的对象。...②在Map接口中键值(Key值)是不可以重复的,value值却可以重复,也就是存在多对一的关系。 ③在Map接口中提供了分别返回Key值的集合、value值的集合以及Entry集合的方法。...ORM 认识Hibernate和Mybatis之前,必然要先了解一下什么是ORM? ORM是三个单词的缩写:Object/Relationship Mapping。翻译过来就是“对象/关系映射”。...Hibernate的常用属性: cascade:设置级联关系。 inverse:设置由哪一方维护关联关系。 例:下面的这段代码集合了常用属性以及表与表之间的多对一和一对多关系。

    50710

    【Cocos2d-x】开发基础-Node与Node层级架构

    把图片精灵加入到层中 this->addChild(sprite, 0); 代码在HelloWord.cpp中可以看到 所以,最开始的图上的层次结构,是通过add的这个方法添加上来的 既然有添加,那么就有移除方法...主要是树形结构,需要注意的就是添加的顺序和个数 一般来说,一个场景会有多个层,我们建立的HelloWord实例中,场景和层是一对一的关系 也就是场景中只放了一个层。...实际上场景与层是一对多的关系 为了减少绘制的次数,不要建立太多的层,那样很消耗cpu 层与精灵也是一对多的关系,然后层与菜单,粒子系统,瓦片地图都是一对多的关系 菜单与菜单项是一对多的关系,一个菜单里会有多个菜单项...Node* node = node->getChildByTag(123) 删除子节点 node->removeChildByTag(123,true)//第二个参数表示是否在内存中清除这个对象 node...selector, float interval )//与scheduleUpdate函数功能一样,不同的是我们可以指定回调函数(通过selector指定),也可以根据需要指定回调时间间隔 //一旦调度开始

    58720

    hibernate笔记(二)

    目标: 关联映射(hibernate映射) 1. 集合映射 2. 一对多与多对一映射 (重点) 3. 多对多映射 4. inverse/lazy/cascade 1....少生成2条update sql */ } } 总结: 在一对多与多对一的关联关系中,保存数据最好的通过多的一方来维护关系,这样可以减少update语句的生成,从而提高hibernate的执行效率...配置一对多与多对一,这种叫“双向关联” 只配置一对多, 叫“单项一对多” 只配置多对一, 叫“单项多对一” 注意: 配置了哪一方,哪一方才有维护关联关系的权限!...inverse=true, 没有控制权: 如果删除的记录有被外键引用,会报错,违反主外键引用约束! 如果删除的记录没有被引用,可以直接删除。...先删除中间表数据,再删除自身。 // inverse=true, 没有控制权。 如果删除的数据有被引用,会报错! 否则,才可以删除

    54610

    Python Web - Flask笔记6

    ORM关系以及一对多: mysql级别的外键,还不够ORM,必须拿到一个表的外键,然后通过这个外键再去另外一张表中查找,这样太麻烦了。...一对一的关系: 在sqlalchemy中,如果想要将两个模型映射成一对一的关系,那么应该在父模型中,指定引用的时候,要传递一个uselist=False这个参数进去。...多对多的关系: 多对多的关系需要通过一张中间表来绑定他们之间的关系。...父删子删 delete-orphan:表示当对一个ORM对象解除了父表中的关联对象的时候,自己便会被删除掉。当然如果父表中的数据被删除,自己也会被删除。...当在使用session.merge,合并一个对象的时候,会将使用了relationship相关联的对象也进行merge操作。 expunge:移除操作的时候,会将相关联的对象也进行移除。

    2K10

    redis一级缓存和二级缓存_面试官让面试者先回去

    (默认)eviction=”FIFO”先进先出:按对象进入缓存的顺序来移除它们。 eviction=”SOFT”软引用:移除基于垃圾回收器状态和软引用规则的对象。...答: Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。...答: Mybatis 仅支持 association 关联对象和 collection 关联集合对象的延迟加载,association指的就是一对一,collection 指的就是一对多查询。...Hibernate 对象/关系映射能力强,数据库无关性好,对于关系模型要求高的软件(例如需求固定的定制化软件)如果用 hibernate 开发可以节省很多代码,提高效率。...2)通过来映射字段名和实体类属性名的一一对应的关系。

    2.7K10

    spring boot 中使用 jpa以及jpa介绍

    JPA顾名思义就是Java Persistence API的意思,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 2.jpa具有什么优势?...2.4高级特性 JPA 中能够支持面向对象的高级特性,如类之间的继承、多态和类之间的复杂关系,这样的支持能够让开发者最大限度的使用面向对象的模型设计企业应用,而不需要自行处理这些特性在关系数据库的持久化...@ManyToMany 定义了连接表之间的多对多一对多的关系。 @ManyToOne 定义了连接表之间的多对一的关系。 @OneToMany 定义了连接表之间存在一个一对多的关系。...·create-drop:每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。...系统会根据关键字将命名解析成2个子语句,第一个 By 是区分这两个子语句的关键词。这个 By 之前的子语句是查询子语句(指明返回要查询的对象),后面的部分是条件子语句。

    4.5K10

    SqlAlchemy 2.0 中文文档(二十三)

    (1,) COMMIT 在一对多关系中,delete级联通常与delete-orphan级联结合使用,如果“子”对象与父对象解除关联,则会为相关行发出 DELETE。...## delete-orphan delete-orphan级联会为delete级联添加行为,这样当子对象与父对象取消关联时,子对象将被标记为删除,而不仅仅是在父对象被标记为删除时。...delete-orphan 级联也可以应用于多对一或一对一关系,这样当一个对象从其父对象中取消关联时,它也会自动标记为删除。...(1,) COMMIT 删除 在一对多关系上的级联通常与删除孤儿级联结合使用,如果“子”对象与父对象解除关联,则会发出与相关行相关的 DELETE 操作。...删除孤立 delete-orphan 级联为 delete 级联增加了行为,使得当子对象与父对象取消关联时,子对象将被标记为删除,而不仅仅是当父对象被标记为删除时。

    28710
    领券