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

Hibernate学习笔记2

持久类三种状态切换 3.Hibernate级缓存 3.1. 示例---演示级缓存存在 3.2. 持久对象具有自动更新数据库能力 为什么持久对象具有自动更新数据库能力? 3.3.... 5. Hibernate关联映射- 5.1. 实体类创建 5.2. Hbm映射文件编写 5.3. 测试保存 5.4. 测试单向关联保存 5.5. 双向关联维护 5.6....2.持久态:在hibernatesession管理范围内,它具有持久标识OID它特点,在事务未提交前直是持久态,当它发生改变时,hibernate是可以检测到。...当我们通过hibernatesession提供些API例如 save get update等进行操作时,就会将持久对象保存到session,当下次在去查询缓存具有的对象(OID值来判断...() 客户与订单之间多关系() 建表原则:在方添加外键来描述关联关系 ?

1.4K40

何在 Spring Boot 读写数据

API),它是在 jdk 5提出Java持久规范。...元数据用于描述对象和表之间映射关系,框架会据此将实体对象持久到数据库表。 JPA API:用来操作实体对象,执行CRUD操作。对于简单 CRUD 操作,开发人员可以不用写代码。...如何在 Spring Boot 读写数据 2.1 引入依赖包 在 Spring Boot 应用,只需要打开 pom.xml 加入个 Spring Data JPA 依赖即可。...如何在 Spring Boot 读写数据 cascade 属性用于指定级联策略: 策略 | 说明 --- | --- CascadeType.PERSIST | 级联持久;保存父实体时,也会同时保存子实体...(3)@ManyToOne() 如果我们站在用户角度来看待用户与部门之间关系时,它们之间就变成了关系(多个用户隶属于个部门),在用户实体类 User 上添加如下注解: @ManyToOne

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

什么是JPA?Java Persistence API简介

Hibernate由Gavin King开发,于2002年初发布,是个用于JavaORM库。King开发了Hibernate作为持久实体bean替代品。...Java数据对象 Java Data Objects是个标准持久性框架,它与JPA不同之处主要在于支持对象持久性逻辑,以及它长期以来使用非关系数据存储支持。...JPA实体关系 简单地使用原始字段持久对象只是方程式半。JPA还具有管理彼此相关实体能力。...在表和对象中都有四种实体关系: 许多到 许多 每种类型关系描述了实体与其他实体关系。...例如,Musician实体可以与由诸如List或Set集合表示实体具有关系。

10.1K30

Hibernate学习---关联关系映射

丶关联数量 实体对象间关联从数量上可以划分为 1:1() 1:N() N:1() M:N() 二丶关联属性 Java代码实体定义,声明另个实例类类型或其集合类型属性...(2)双向关联 指具有关系关联实体对象间加载与访问时双向,即,任何方均可加载和访问另方。 四丶级联操作 级联操作分为:级联保存,级联删除,级联更新.........说了那么我们接下来就来使用Hibernate实现这些关联: 六丶单向关联(“”能加载和访问“”) 第步: 创建两个关联实体类 //Employee实体类 public class Employee...============================================ 七丶双向关联(同时也是双向关联) 双向关联实在单向关联基础上进行修改: 第步: 修改实体类,修改...十一丶双向关联 双向关联是在单向关联基础上改下就好: 将Course实体类添加个Set集合 ? 配置文件修改成这样: ?

1.3K60

hibernate官方新手教程 (转载)

全部持久实体类(persistent entity classes)(再次声明, 这里也包括那些依赖类,就是那些次要实体)都须要个这种映射,来映射到我们SQL database。...另外,自己主动生成数据库表并导出在单元測试是很实用。 2.3. 第二部分 - 关联映射 我们已经映射了持久实体类到个表上。让我们在这个基础上添加�些类之间关联性。...这个表示Hibernate须要在两个实体间查找关联信息时候,应该使用关联另外端 - Person类。 这将会极大帮助你理解双向关联是怎样在我们两个实体间创建。 2.3.6....使双向关联工作 首先,请牢记在心,Hibernate并不影响通常Java语义。 在单向关联,我们是如何在个Person和个Event之间创建联系?...在(one-to-many)关联 它必须是代表(many)那端。而在(many-to-many)关联,你能够随意选取端,两端之间并没有区别。 2.4.

99120

遍文章搞清楚VO、DTO、DO、PO概念、区别

PO(Persistent Object):持久对象,它跟持久层(通常是关系型数据库)数据结构形成一一映射关系,如果持久层是关系型数据库,那么,数据表每个字段(或若干个)就对应PO个(...服务层把DO转换为持久层对应PO(可以使用ORM工具,也可以不用),调用持久持久方法,把PO传递给它,完成持久操作。 对于个逆向操作,读取数据,也是用类似的方式转换和传递,略。...这里要特别声明,并不是所有多关系都没有业务含义,这跟具体业务场景有关,例如:两个PO之间关系会影响具体业务,并且这种关系存在多种类型,那么这种多关系也应该表现为个DO,又如:“角色”与“资源...例如客户Customer有其联系信息Contacts,这里是两个关系DO,但可能出于性能考虑(极端情况,权作举例),为了减少数据库连接查询操作,把Customer和Contacts两个DO数据合并到张数据表...虽然如此,但有些问题我们还必须注意: 对于DO不需要持久属性,需要通过ORM显式声明,:在JPA,可以利用@Transient声明。

2.8K30

次扫盲VO、DTO、DO和PO区别、用法、概念~

PO(Persistent Object):持久对象,它跟持久层(通常是关系型数据库)数据结构形成一一映射关系,如果持久层是关系型数据库,那么,数据表每个字段(或若干个)就对应PO个(...服务层把DO转换为持久层对应PO(可以使用ORM工具,也可以不用),调用持久持久方法,把PO传递给它,完成持久操作。 对于个逆向操作,读取数据,也是用类似的方式转换和传递,略。...这里要特别声明,并不是所有多关系都没有业务含义,这跟具体业务场景有关,例如:两个PO之间关系会影响具体业务,并且这种关系存在多种类型,那么这种多关系也应该表现为个DO,又如:“角色”与“资源...虽然如此,但有些问题我们还必须注意: 对于DO不需要持久属性,需要通过ORM显式声明,:在JPA,可以利用@Transient声明。...虽然如此,但有些问题我们还必须注意: 对于DO不需要持久属性,需要通过ORM显式声明,:在JPA,可以利用@Transient声明。

6.6K30

hibernate 5.2.6新特性

领域模型关联 关联有多关联,在面向对象Java,这三种关联都可以很好地表示,关联就是单实体,而多多多关联,包含了方要使用集合,般情况下,都会选择使用Set...关联在面向对象Java,还存在方向,即所谓单向和双向。...JPA JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表映射关系,并将运行期实体对象持久到数据库。...总的来说,JPA包括以下3方面的技术: ORM映射元数据 JPA支持XML和JDK5.0注解两种元数据形式,元数据描述对象和表之间映射关系,框架据此将实体对象持久到数据库表; API 用来操作实体对象...查询语言 这是持久操作很重要个方面,通过面向对象而非面向数据库查询语言查询数据,避免程序SQL语句紧密耦合。

1.3K90

篇 JPA 总结

是实现:Hibernate 除了是种 ORM 框架之外,他也是种 JPA 实现 HelloWorld 步骤 创建 presitence.xml,在这个文件配置持久单元 指定跟哪个数据库进行交互...remove():类似于 Hibernate Session delete 方法,但此方法只可删除持久对象,而 hibernate 方法可以删除游离对象(不在缓存,但在数据库可能有对象,...关联关系映射(使用 IDEA 可以使用实体生成表,也可以使用对应额表逆向生成实体类) 单向(orders - customer) 表结构(oreders 表中有 customer 表外键映射...实体映射 ? ? 方法测试 保存数据(先保存不维护关联关系端,否则会多出 UPDATE 语句) ? 使用 IDEA 反向生成实体双向) ?...双向映射 配置览图(实体生成数据表),核心配置如下图所示,对于添加数据获取数据代码不再展示 ?

5.6K20

VO、DTO、DO、PO 我告诉你

PO(Persistent Object) 持久对象,它跟持久层(通常是关系型数据库)数据结构形成一一映射关系,如果持久层是关系型数据库,那么,数据表每个字段(或若干个)就对应PO个(...这里要特别声明,并不是所有多关系都没有业务含义,这跟具体业务场景有关,例如:两个PO之间关系会影响具体业务,并且这种关系存在多种类型,那么这种多关系也应该表现为个DO,又如:“角色”与“资源...例如客户Customer有其联系信息Contacts,这里是两个关系DO,但可能出于性能考虑(极端情况,权作举例),为了减少数据库连接查询操作,把Customer和Contacts两个DO数据合并到张数据表...同理,DO也可能存在不需要持久属性。...虽然如此,但有些问题我们还必须注意: 对于DO不需要持久属性,需要通过ORM显式声明,:在JPA,可以利用@Transient声明。

2.6K81

Java程序员面试题集(86-115)

方面,Hibernate目前仍然是ORM框架中坚力量,MyBatis在此领域也有不容忽视席之地,因此了解这两个ORM框架Java程序员是很有必要。...持久对象进行delete操作后,数据库对应记录将被删除,那么持久对象与数据库记录不再存在对应关系,持久对象变成临时状态。持久对象被修改变更后,不会马上同步到数据库,直到数据库事务提交。...112、举多关联例子,并说明如何实现多关联映射。 答:例如:商品和订单、学生和课程都是典型多关系。...可以在实体类上通过@ManyToMany注解配置多关联或者通过映射文件和标签配置多关联,但是通常情况下,可以将多关联转换成两个关联来实现多关联映射...答:HibernateSession提供了级缓存功能,默认总是有效,当应用程序保存持久实体、修改持久实体时,Session并不会立即把这种改变提交到数据库,而是缓存在当前Session

1.8K70

Hibernate_day02总结

相同对象进行合并. 1.4.5 删除方法: 将持久态对象转成瞬时. 1.5 Hibernate关联关系映射.(*****) 1.5.1 表之间关系: : * 建表原则:在方创建个字段... : * 建表原则:创建个中间表,中间表至少两个字段.两个字段分别作为外键指向双方主键.... * 建表原则: * 唯外键对应:假设关系.在方创建外键指向主键.将外键设置为unique. * 主键对应:个表主键从另个表主键获得. 1.5.2 Hibernate...完成关联关系配置(客户和订单案例) 步骤:创建客户和订单实体: 步骤二:创建客户和订单映射文件: Order.hbm.xml <class name...:双向维护,出错.

1.5K110

POPOJOBODTOVO概念与区别

hibernate持久框架与insert/delete操作密切相关。 PO不应该包含任何对数据库操作。...POJO持久之后==〉PO (在运行期,由Hibernatecglib动态把POJO转换为PO,PO相对于POJO会增加些用来管理数据库entity状态属性和方法。...PO(Persistent Object):持久对象,它跟持久层(通常是关系型数据库)数据结构形成一一映射关系,如果持久层是关系型数据库,那么,数据表每个字段(或若干个)就对应PO个(...这里要特别声明,并不是所有多关系都没有业务含义,这跟具体业务场景有关,例如:两个PO之间关系会影响具体业务,并且这种关系存在多种类型,那么这种多关系也应该表现为个DO,又如:“角色”与“资源...虽然如此,但有些问题我们还必须注意: 对于DO不需要持久属性,需要通过ORM显式声明,:在JPA,可以利用@Transient声明。

67030

框架篇二

JDBC访问数据库代码做了封装,大大简化了数据访问层繁琐重复性代码。     2. Hibernate个基于JDBC主流持久框架,是个优秀ORM实现。...它支持各种关系数据库,从各种复杂关系。...saveOrUpdate():   ● 如果对象已经在本session持久化了,不做任何事   ● 如果另个与本session关联对象拥有相同持久标识(identifier),抛出个异常   ...● 如果对象没有持久标识(identifier)属性,其调用save()   ● 如果对象持久标识(identifier)表明其是个新实例对象,其调用save()   ● 如果对象是附带版本信息...● 使用双向多关联,不使用单向   ● 灵活使用单向多关联   ● 不用,用取代   ● 配置对象缓存,不使用集合缓存   ● 集合使用Bag,集合使用Set

54640

整理+学习《骆昊-Java面试题全集(下)》

Hibernate使用了虚拟代理机制实现延迟加载,我们使用Sessionload()方法加载数据或者多关联映射在使用延迟加载情况下从方加载方,得到都是虚拟代理,简单说返回给用户并不是实体本身...可以在实体类上通过@ManyToMany注解配置多关联或者通过映射文件和标签配置多关联,但是实际项目开发,很多时候都是将多关联映射转换成两个关联映射来实现。...答:HibernateSession提供了级缓存功能,默认总是有效,当应用程序保存持久实体、修改持久实体时,Session并不会立即把这种改变提交到数据库,而是缓存在当前Session,...答:@OneToMany用来配置多关联映射,但通常情况下,多关联映射都由方来维护关联关系,例如学生和班级,应该在学生类添加班级属性来维持学生和班级关联关系(在数据库是由学生表外键班级编号来维护学生表和班级表关系...连接点(Joinpoint):程序执行某个特定位置(:某个方法调用前、调用后,方法抛出异常后)。个类或段程序代码拥有具有边界性质特定点,这些代码特定点就是连接点。

94030

节 DDD领域驱动概述

PO(Persistent Object):持久对象,跟持久层(通常是关系型数据库)数据结构形成一一映射关系,如果持久层是关系型数据库,那么,数据表每个字段(或若干个)就对应PO个(或若干个...服务层把DO转换为持久层对应PO(可以使用ORM工具,也可以不用),调用持久持久方法,把PO传递给它,完成持久操作。 对于个逆向操作,读取数据,也是用类似的方式转换和传递,略。...两者在本质上区别可能导致彼此并不一一应,个DTO可能对应多个DO,反之亦然,甚至两者存在关系。 2. DO具有些不应该让展示层知道数据 3....这里要特别声明,并不是所有多关系都没有业务含义,这跟具体业务场景有关,例如:两个PO之间关系会影响具体业务,并且这种关系存在多种类型,那么这种多关系也应该表现为个DO,又如:“角色”与“资源...虽然如此,但有些问题还必须注意: 1 对于DO不需要持久属性,需要通过ORM显式声明,:在JPA,可以利用@Transient声明。

89830

Hibernate框架学习之三

数据库多表之间存在着三种关系,也就是系统设计三种实体关系。如图所示。 ?  从图可以看出,系统设计三种实体关系分别为:关系。...●   建表原则:创建个中间表,中间表至少两个字段作为外键分别指向双方主键 ?...从图可以看出,通过关系就是在本类定义对方类型对象,A定义B类类型 属性b,B类定义A类类型属性a:关系,图中描述个A对应多个B类类型 情况,需要在A类以Set集合方式引入...,,Hibernate映射文件,使用标签来描述持久多关联,其中 class属性用来描述映射关联类。...>   标签定义两个持久关联,这种关联是数据表间关联,联系人与客户就是关系,所以用标签来描述。

1.7K110

Hibernate框架学习之注解配置关系映射

单向关联关系映射 单向关联关系映射 单向关联关系映射 双向关联关系映射 双向多关联关系映射 双向多关联关系映射 、单向关联关系映射 首先,...我们需要知道什么样两张表具有关联关系。...这就是个典型单向关联关系,所谓其实就是指,主表条记录唯对应于从表条记录。但具体到我们实体又该如何来写呢?...对比着表各个字段,再次体会下上述注解属性各个值意义。 ? 三、单向关联关系映射 单向和单向是完全不同两种表间关系。...六、双向关联关系映射 其实双向双向是同种关联关系,只是主导关系的人不样而已。

2.2K90

框架篇

2.为了在关机和内存空间不够状况下,保持程序运行状态,需要将内存对象状态保存到持久设备和从持久设备恢复出对象状态,通常都是保存到关系数据库来保存大量对象信息。...JDO是Java对象持久规范,为java data object简称,也是个用于存取某种数据仓库对象标准API。...9、Hibernate双向关联区别?         ...多关联映射和关联映射实现基本原理都是,既是在端加入个外键指向端外键,而主要区别就是维护端不同。         ...它们区别在于维护关系不同: 多关联映射是指在加载端数据同时加载数据关联映射是指在加载端数据同时加载数据。

71420
领券