如何将 JPA Hibernate 与大量耦合实体一起使用

问题描述 投票:0回答:2

我正在一个项目中工作,我们从前端到后端的每次调用都有大量数据。

问题是我们有一个非常庞大的数据库,并且有大量的耦合实体。

例如,我们必须带用户,但它有一个包含大量信息的“地址”对象,并且还有一个包含更多信息的“城市”对象,然后我们有相同的“邮政编码”等等。 ..

问题是,当我们有一些并发用户时,我们会面临一些性能问题。我们正在为每个用户创建一个查询,然后为每个地址创建另一个查询,然后为每个城市创建另一个查询...问题是,当我们获取所有用户所有这些嵌套对象时,即使它是同一个城市,我们为每个用户创建一个 SQL。

我们可以在休眠中使用一些东西来提高这种性能吗?

非常感谢 最好的问候

java hibernate jpa
2个回答
0
投票
  1. 使用Hibernate二级缓存
  2. 延迟加载
  3. @批量

0
投票
  1. 如果您的大量耦合实体确实不是那么大,请使用@EntityGraph。

  2. 对于真正大量的数据(即使使用分页),请将 findByEntityIds(ids) 方法添加到所有实体存储库。收集所有必需的 id、所有必需的对象,以编程方式构造 DTO(Java 流对于“collect(Collectors.groupingBy(MyDto::getId());”)很有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.