JPA中数据获取(Fectching)有两种方式:Eager和Lazy。明白他们之间的差异和知道何时应用哪种方式对于有效率地进行数据库操作非常关键。
- Lazy: 只有需要的时候才将相关联的实体取出
- Eager: 一次将所有相关联的实体取出
使用的方法如下:
java 代码
- @OneToMany(fetch=FetchType.EAGER)
- public Collection<Empolyee> getEmpolyees() {
- return empolyees;
- }
关系类型后使用fetch元素。通常Eager是低效率的,因为他将整个关系映射图取出。例如我们有多个消费者,每个消费者有多个订单,每个订单有多个订货商品。如果我们对所有关系全部使用Eager方式,那么仅仅是查询一些消费者就可能产生巨大的对象图,包括了符合查询条件的消费者,以及每个消费者的所有订单,以及每个订单的所有订货商品。这会导致严重的负载问题。如果你在一个持久上下文中操作一些受管理的实体(Managed Entity),那么使用Lazy方式更加有效率。在大部分情况下,只有需要时,相关联实体才会被加载。
更加细粒度的数据获取控制可以通过使用Lazy方式和获取联合来(fetch joins)完成。如果查询没有显式指定fetch joins,则使用Lazy方式获取数据,如果查询指定了fetch joins,在joins中的实体将使用Eager方式获取数据。
分享到:
相关推荐
Learn to use the Java Persistence API (JPA) and other related APIs as found in the Java EE 8 platform from the perspective of one of the specification creators. A one-of-a-kind resource, this in-depth...
赠送jar包:spring-data-jpa-2.0.9.RELEASE.jar; 赠送原API文档:spring-data-jpa-2.0.9.RELEASE-javadoc.jar; 赠送源代码:spring-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
Spring Boot+Jpa多数据源配置Demo,可同时支持多种数据库,不同数据库,同时支持不同数据库的JdbcTemplate
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
springboot+JPA 多数据源配置springboot+JPA 多数据源配置
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; ...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心
使用springboot + JPA / MyBatis 实现多数据源动态切换
spring boot jpa多数据源配置,简单、快速、易懂,直接放入文件,修改对应的实体路径和repository路径即可.
NULL 博文链接:https://jishiweili.iteye.com/blog/2088265
SpringBoot操作多数据源(JPA+JdbcTemplate)使用HikariCP数据源进行示例。
Spring Data JPA中文文档1.4.3
RM映射元数据,JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中; JPA 的API,用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的...
Spring Boot使用spring-data-jpa配置Mysql多数据源,可用版本
Spring Data JPA中文文档[1.4.3].zip
第一章:Spring Data JPA入门 包括:是什么、能干什么、有什么、HelloWorld等 第二章:JpaRepository基本功能 包括:代码示例JpaRepository提供的CRUD功能,还有翻页、排序等功能 第三章:JpaRepository的查询 ...
formacao-java-alura-jpa-hibernate-modulo2:jpa-hibernate-modulo2
实现了spring3+springmvc+jpa2.0之间的集成,采用多数据源实现jpa,本例子提供的数据源为hibernate何datastore,为需要的朋友省去搭建框架的时间
springboot+mysql+jpa多数据源操作
ORM 映射元数据:JPA 支持 XML 和 JDK 5.0 注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中。 JPA 的 API:用来操作实体对象,执行CRUD操作,框架在后台完成所有...
Spring中使用OpenJPA源代码 博文链接:https://lxy19791111.iteye.com/blog/184997