![]() |
1
5
如果您根本不打算使用相关数据(例如,只显示一个客户列表,因此忽略嵌套的订单集),或者还不确定用户是否希望查看相关数据(例如,mem中有一个客户列表),那么延迟加载才是有益的。ORY和订单列表请求取决于将来的操作)。 如果您确定一次显示所有数据,那么不需要延迟加载,只需要额外的查询。 |
![]() |
2
3
如果您有一个设计良好的模式和实体,并且这些模式和实体广泛地映射到应用程序中的其他实体,则基本上需要延迟加载。下面是一个非常基本的例子: 人 实体映射一对多 转介 转介 一对一 人 两次(推荐人和被推荐人) 很简单,对吧?好吧,如果在这两种关系中使用紧急加载,可能会导致大量后续查询,这些查询可能在大多数情况下都不会显示。 例如: 你的应用程序要加载记录“ 人物角色 “还有这个 人物角色 有3个转介记录,因为他转介了3个客户: 人物角色 , 小精灵 和 人品 . 因此,如果您渴望获取这种关系,jpa将加载这3个人的记录。让我们说 人物角色 介绍了10位顾客,因为他喜欢你卖的东西。现在jpa也不得不加载这10个客户,同样是因为急于加载。 你可以看到这是怎么回事。如果这是一个延迟加载的关系,那么只有在直接对其执行getreferrals()调用时才会加载这组额外的数据。 就我个人而言,我将避免创建其他方法来执行这些抓取。编写代码需要做很多额外的工作,现在您需要以某种方式管理实体的状态,以及是否需要进行额外的加载。 如果使用延迟加载,jpa会使这一点变得简单。只需做任何get…)调用您通常对实体pojo和jpa执行的操作。 |
![]() |
S. Jacson · 任意两台发电机的速度差(内置功能) 2 年前 |
![]() |
Sadeq Dousti · 相当于“嵌套删除”的执行性能SQL查询 2 年前 |
![]() |
Prince · 复制大型文件需要更多时间 3 年前 |
![]() |
Sagar · 为什么在循环之外声明变量会更快? 3 年前 |
![]() |
seco · 如何在不挂起页面的情况下加载JS 3 年前 |