У меня есть сущность с 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 очень удобны. что я должен проверить, чтобы понять причину?