微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用渴望获取来避免N + 1问题

如何解决如何使用渴望获取来避免N + 1问题

我有一个简单的数据模型。 Student具有一个ManyToOne的{​​{1}}关系。 ClassClass之间有一个OnetoMany关系,例如,同一位老师的授课内容不会超过课堂上的内容

我的实体定义为

Teacher

我正在使用spring boot:spring数据jpa 2,使用Hibernate作为JPA实现。

显然,以上映射导致N + 1次调用,关联越多,调用越多。

我可以使用所有联接构造自己的sql并将其映射,以便查询仅执行一次,并且可以在内存中构建必要的对象图。

我还需要进行快速获取,因为我将传递对象图,因此Hibernate会话可能不在范围内。

如何仍能避免N + 1问题,因为它渴望获取并且不愿意编写自己的sql连接。

解决方法

JPA具有联接获取的概念,您可以使用它。您可以在Hibernate文档中找到有关此信息的更多信息:https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#fetching-strategies-dynamic-fetching

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。