Hibernate сборка LoadPlan 10 секунд для одной таблицы и быстрая для другой некоторых таблиц - PullRequest
0 голосов
/ 30 августа 2018

У меня есть сущность с 3 @OneToMany отношениями:

@Data
@Entity
@Table(name = "SERVICES")
public class Service {

  @Id
  @Column(name = "GUID", nullable = false, length = 36)
  private String guid;

  ...

  @OneToMany(mappedBy = "service", cascade = CascadeType.ALL)
  private List<Commission> commissions;

  @OneToMany(mappedBy = "service", cascade = CascadeType.ALL)
  private List<ParametersDefinition> parametersDefinitions;

  @OneToMany(mappedBy = "service", cascade = CascadeType.ALL)
  private List<Charge> charges;

Каждое право имеет @ManyToOne отношение к Service:

  @ManyToOne(fetch = FetchType.LAZY)
  @JoinColumn(name = "SRV_GUID")
  private Service service;

Когда я запускаю весенний загрузочный сервер - сборка hibernate LoadPlan для каждой таблицы:

12:28:03.202 [                  main] [DEBUG] lanBuildingAssociationVisitationStrategy: [] Building LoadPlan...

И для 2 таблиц этот план строится быстро, но для одной таблицы он строится очень медленно.

12:28:03.201 [main] [DEBUG]   o.h.l.collection.plan.CollectionLoader: [] Static select for collection domain.entities.Service.parametersDefinitions: select ...
12:28:03.202 [main] [DEBUG]       o.h.l.p.b.i.spaces.QuerySpacesImpl: [hibernateLoadPlanWalkPath=] Adding QuerySpace : uid = <gen:0> -> org.hibernate.loader.plan.build.internal.spaces.CollectionQuerySpaceImpl@53fbb2b4]

12:28:03.201 [main] [DEBUG]   o.h.l.collection.plan.CollectionLoader: [] Static select for collection domain.entities.Service.charges: select ...
12:28:03.201 [main] [DEBUG]       o.h.l.p.b.i.spaces.QuerySpacesImpl: [hibernateLoadPlanWalkPath=] Adding QuerySpace : uid = <gen:0> -> org.hibernate.loader.plan.build.internal.spaces.CollectionQuerySpaceImpl@55c46ec1]

12:28:03.202 [main] [DEBUG]   o.h.l.collection.plan.CollectionLoader: [] Static select for collection domain.entities.Service.commissions: select ...
12:28:13.264 [main] [DEBUG]       o.h.query.spi.NamedQueryRepository: [] Checking 0 named HQL queries

для 1 и 2 таблиц это между

12:28:03.201 и 12:28:03.202 12:28:03.201 и 12:28:03.201

но 3 стола - 12:28:03.202 и 12:28:13.264 - 10 секунд!

Я проверяю все отношения для каждой сущности, и все равны, но 3 таблицы buildPlan очень удобны. что я должен проверить, чтобы понять причину?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...