【Java】 Java持久化API中LAZY与EAGER加载策略的区别

>
> 【痕迹】QQ+微信朋友圈和聊天记录分析工具
>
> (1)纯Python语言实现,使用Flask后端,本地分析,不上传个人数据。
>
> (2)内含QQ、微信聊天记录保存到本地的方法,真正实现自己数据自己管理。
>
> (3)数据可视化分析QQ、微信聊天记录,提取某一天的聊天记录与大模型对话。
> 
>  下载地址:https://www.alipan.com/s/x6fqXe1jVg1
>

基本原理

Java Persistence API(JPA)是Java EE 5的一部分,它提供了一种用于管理关系数据和对象图的模型和API。在JPA中,FetchType是一个枚举类型,用于指定关联实体的加载方式。FetchType有两种主要的加载策略:LAZYEAGER

LAZY(延迟加载)
  • 定义:LAZY是JPA的默认加载策略。当指定为LAZY时,关联的实体在初次被访问时才会被加载。这意味着数据库查询将被推迟到实际需要数据时才执行。
  • 优点:减少数据库查询次数,提高应用性能,特别是在关联实体很大或者不经常使用的情况下。
  • 缺点:如果在一个事务中多次访问同一个关联实体,可能会导致多次数据库查询,从而影响性能。
EAGER(立即加载)
  • 定义:当指定为EAGER时,关联的实体在查询主实体时将被同时加载。这通常通过JOIN查询实现。
  • 优点:避免了多次数据库查询,适合于关联实体经常被访问的情况。
  • 缺点:增加了初次查询的负载,可能会导致不必要的数据被加载,影响性能。

代码示例

以下是使用LAZY和EAGER加载策略的示例代码。

示例1:LAZY加载示例
@Entity
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值