我正在一个项目中工作,我们从前端到后端的每次调用都有大量数据。
问题是我们有一个非常庞大的数据库,并且有大量的耦合实体。
例如,我们必须带用户,但它有一个包含大量信息的“地址”对象,并且还有一个包含更多信息的“城市”对象,然后我们有相同的“邮政编码”等等。 ..
问题是,当我们有一些并发用户时,我们会面临一些性能问题。我们正在为每个用户创建一个查询,然后为每个地址创建另一个查询,然后为每个城市创建另一个查询...问题是,当我们获取所有用户所有这些嵌套对象时,即使它是同一个城市,我们为每个用户创建一个 SQL。
我们可以在休眠中使用一些东西来提高这种性能吗?
非常感谢 最好的问候
如果您的大量耦合实体确实不是那么大,请使用@EntityGraph。
对于真正大量的数据(即使使用分页),请将 findByEntityIds(ids) 方法添加到所有实体存储库。收集所有必需的 id、所有必需的对象,以编程方式构造 DTO(Java 流对于“collect(Collectors.groupingBy(MyDto::getId());”)很有帮助。