JPA 中通过primaryKey 来得到实体对象可以通过一个连个方法
find(), getRefrence();这两个方法相当于Hibernate中的get()和load()方法。
这两个方法的区别跟get()和load()方法的区别是一样的,
其中hibernate中get方法和load方法的根本区别在于:
如果你使用load方法,hibernate认为该id对应的对象(数据库记录)在数据库中是一定存在的,所以它可以放心的使用,它可以放心的使用代理来延迟加载该对象。在用到对象中的其他属性数据时才查询数据库,但是万一数据库中不存在该记录,那没办法,只能抛异常,所说的load方法抛异常是指在使用该对象的数据时,数据库中不存在该数据时抛异常,而不是在创建这个对象时。由于session中的缓存对于hibernate来说是个相当廉价的资源,所以在load时会先查一下session缓存看看该id对应的对象是否存在,不存在则创建代理。所以如果你知道该id在数据库中一定有对应记录存在就可以使用load方法来实现延迟加载。
对于get方法,hibernate会确认一下该id对应的数据是否存在,首先在session缓存中查找,然后在二级缓存中查找,还没有就查数据库,数据库中没有就返回null。
一句话,hibernate对于load方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,如果在使用过程中发现了问题,只能抛异常;而对于get方法,hibernate一定要获取到真实的数据,否则返回null。
分享到:
相关推荐
通过阅读《Spring Data JPA 中文文档[1.4.3]》PDF 文件,开发者可以深入了解这些特性和如何在实际项目中应用它们,从而提升开发效率和代码质量。文档中可能还会涵盖错误处理、性能优化以及与其他 Spring 模块的协作...
6. **分页和排序**:Spring Data JPA支持在查询结果中进行分页和排序,可以方便地通过Repository接口实现。 7. **存储过程**:Spring Data JPA也支持调用数据库存储过程,并将其结果转换为Java对象。 8. **JPA实体...
标题中提到的"JPA中文解释"是指对于JPA的概念、原理、使用方法等进行了中文语言的详细解读,这对于中文环境下的开发者来说非常方便,能够更好地理解和应用JPA。JPA的核心理念是对象关系映射(ORM),它将Java对象...
**Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理关系数据库中的对象-关系映射(ORM)。它提供了一种方式,让开发者可以用面向对象的编程模型来操作数据库,而无需直接编写SQL语句。JPA允许你在...
在快速了解和上手Spring Data JPA的过程中,以下是一些关键知识点: 1. **什么是Spring Data JPA** Spring Data JPA 是Spring Data项目的一部分,它允许通过声明式的方式处理数据访问。它提供了Repository接口的...
根据提供的信息,我们可以从标题、描述和部分内容中提取出关于JPA 1.0中文手册的知识点。 首先,标题中提到了“jpa1.0中文手册”,指出了文档所针对的技术是Java Persistence API(JPA)的1.0版本。JPA是一个Java...
综上所述,JPA作为Java世界中一个里程碑式的ORM规范,其设计理念和实现机制均体现了现代软件工程对于简化复杂度、提高开发效率和促进代码复用的追求。通过深入理解JPA的核心技术和应用场景,开发者能够更好地利用这...
RM映射元数据,JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中; JPA 的API,用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的...
**JPA.txt**可能是一个文本文件,里面可能是JPA的笔记、教程、命令行示例或者是开发者在实践中遇到的问题和解决方案。 通过学习这些材料,开发者不仅可以了解JPA的基础知识,还能掌握如何在实际项目中应用JPA进行...
通过阅读《Spring Data JPA 中文指南》,开发者能够全面了解和掌握Spring Data JPA的使用,提升项目中的数据访问效率,减少与数据库交互的复杂性,提高代码的可维护性和可读性。这份文档详细解析了每个知识点,并...
在Java Persistence API (JPA) 中,理解和掌握实体(Entity)的状态对于有效地管理数据库中的对象至关重要。本篇学习笔记主要探讨了JPA中实体的状态及其转换,包括New、Managed、Detached和Removed四种状态。 首先...
本示例"springboot同时整合JPA和mybatis的demo"旨在演示如何在一个项目中同时使用Spring Boot与两种ORM(对象关系映射)框架:JPA(Java Persistence API)和MyBatis。这为我们提供了更大的灵活性,可以根据不同的...
2. **自动查询生成**:Spring Data JPA可以根据方法签名自动构建SQL或HQL查询,例如,`findAll()`返回所有实体,`findByUsername(String username)`则会生成一个根据用户名查找的查询。 3. **Pageable和Sort接口**...
Mybatis 需要在 Mapper 和 XML 文件中添加对应的代码,而 JPA 可以通过简单的注解实现。 5. **分页支持**: - 两者都支持分页查询,Mybatis 可以在 SQL 语句中直接编写分页逻辑,JPA 则可以通过 `Pageable` 接口...
在JPA和Hibernate中,可以使用`Page`或`Slice`接口(Spring Data提供)来实现分页查询,这些接口允许你指定页码和每页大小,返回结果包含当前页的数据以及总页数等信息。 2. **PageIndex.java** - 这个类可能是用于...
**JPA(Java Persistence API)**是Java平台上的一个标准,用于管理关系数据库中的数据,它简化了在Java应用程序中存储、检索和管理对象的工作。JPA是Java EE和Java SE环境中的一种ORM(Object-Relational Mapping)...
Spring框架的核心特性包括依赖注入(DI)和面向切面编程(AOP),并且它还提供了对数据库操作的支持,这主要通过Spring Data JPA和Java Persistence API(JPA)实现。 Spring注解是Spring框架中的一大特色,它极大...
Java Persistence API(JPA)是Java平台上的一个标准,用于管理关系数据库中的数据。它提供了一种面向对象的方式来处理数据库操作,使得开发人员可以使用Java对象来操作数据库记录,而无需编写大量的SQL语句。JPA是...
**JPA(Java Persistence API)**是Java平台上的一个标准,用于管理关系数据库中的数据,它是ORM(Object-Relational Mapping)的一种实现。JPA的主要目标是提供一个规范,使得开发人员可以使用Java对象来操作数据库...
赠送jar包:spring-data-jpa-2.0.9.RELEASE.jar; 赠送原API文档:spring-data-jpa-2.0.9.RELEASE-javadoc.jar; 赠送源代码:spring-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。