jpa mysql lob_Jpa对Lob型字段进行延迟加载

为什么需要延迟加载

在某些情况下,我们在设计实体的时候,可能会将一些大字段设计到实体内部,比如一些超长的说明文字等。

以下时一个实体示例

@Getter

@Setter

@Entity(name = "user_")

public class User extends AbstractPersistable {

private String name;

@Lob

private String description;

}

name 是一个长度受限的字符串,descript是一个大字符串。

当前端页面需要一个列表,并且这个列表不需要展示descript时,我们通过设计数据传输对象,通过减少数据传输对象中的数据属性来规避服务器到客户端直接的网络流量。

但在使用JPA的时候,当我们获取某个对象时,总会向数据库服务器发送完整的sql语句,如果这个对象有Lob类型的字段,并且正巧里面存入了大量数据的话,就会导致发送大量的查询流量。但这些查询流量我们可能在某次请求中并不需要。

比如我们在某个地方调用了相应的Repository.findAll()方法,返回用户的列表。示例代码如下

@Test

public void loadOnlyName() {

List users = userRepository.findAll();

users.forEach(i -> {

System.out.println(i.getName());

});

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值