问题描述
我有一个简单的数据模型。 Student
具有一个ManyToOne
的{{1}}关系。 Class
与Class
之间有一个OnetoMany
关系,例如,同一位老师的授课内容不会超过课堂上的内容。
我的实体定义为
Teacher
我正在使用spring boot:spring数据jpa 2,使用Hibernate作为JPA实现。
我可以使用所有联接构造自己的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