Spring JPA和Hibernate提供了一个强大的工具,用于与数据库无缝通信。然而,由于客户端将更多的控制权委托给框架,生成的查询可能远非最优。
在本教程中,我们将回顾在使用Spring JPA和Hibernate时常见的N+1问题,并检查可能导致问题的不同情况。
为了更好地可视化这个问题,我们需要概述实体之间的关系。让我们以一个简单的社交网络平台为例,其中只有用户和帖子:
我们在使用图表中的_Iterable_,并为每个示例提供具体实现:List_或_Set。
为了测试请求的数量,我们将使用专用库而不是检查日志。然而,我们将参考日志以更好地理解请求的结构。
大约 6 分钟