У меня есть класс сущностей PartEventOperation
и в моем коде у меня есть запрос JPA List<PartEventOperation> findByPartIdIn(List<Long> partIds);
Это запускает следующий запрос Hibernate, что нормально -
OUT Hibernate: выберите partevento0_.id в id1_27_, partevento0_.auto_completed в auto_com2_27_, partevento0_.code как code3_27_, partevento0_.comment как comment4_27_, partevento0_.created_by как created_5_27_, partevento0_.creation_date как creation6_27_, partevento0_.ctp как ctp7_27_, partevento0_ .event_operation_id, как event_o15_27_, partevento0_.form_data, как form_dat8_27_, partevento0_.name как name9_27_, partevento0_.operation_order как operati10_27_, partevento0_.part_id как part_id16_27_, partevento0_.status как status11_27_, partevento0_.transactional_id как transac12_27_, partevento0_.last_updated_by как last_up13_27_, partevento0_.last_updated_date как last_up14_27_, partevento0_.workscope_operation_id как worksco17_27_ из brs.part_event_operations partevento0_ оставил внешнее соединение brs.parts part1_ на partevento0_.part_id = part1_.id, где part1_.id в (?,?,?,????? ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ,?)
Но после этого он запускает несколько промежуточных запросов, таких как -
2019-03-07T14: 32: 25.10-0500 [APP / PROC / WEB / 0] OUT Hibernate: выберите eventopera0_.id в качестве id1_10_0_, Eventopera0_.comments в качестве комментариев2_10_0_, Eventopera0_.created_by в качестве созданного_3_10_0_ создания_чет_0_0, как создание_0_0 , eventopera0_.event_id, как event_i12_10_0_, eventopera0_.operation_id, как operati13_10_0_, eventopera0_.operation_order как operatio5_10_0_, eventopera0_.sent_to_vendor, как sent_to_6_10_0_, eventopera0_.sent_to_vendor_on как sent_to_7_10_0_, eventopera0_.updated_by как updated_8_10_0_, eventopera0_.updated_date как updated_9_10_0_, eventopera0_.vended, как vended10_10_0_, накануне ...........
2019-03-07T14: 32: 25.10-0500 [APP / PROC / WEB / 0] OUT Hibernate: выберите part0_.id в качестве id1_39_0_, part0_.confirmed как Подтверждение2_39_0_, part0_.created_by как созданный_3_39_0_, создание 0___0 как создание, part0_.current_operation_id, как current_5_39_0_, part0_.cycles_since_new, как cycles_s6_39_0_, part0_.is_dpm_scanned, как is_dpm_s7_39_0_, part0_.event_id, как event_i28_39_0_, part0_.factored_fired_hours как factored8_39_0_, part0_.factored_fired_starts как factored9_39_0_, part0_.ffh_since_last_repair как ffh_sin10_39_0_, part0_.ffs_since_last_repair как ffs_sin11_39_0_, part0_.flagged, как flagged12_39_0_, part0_.flagged_comment как flagged13_39_0_, part0_.incoming_serial_number как incomin14_39_0_, part0_.number_of_previous_repairs как number_15_39_0_, part0_.outgoing_part_number как outgoin16_39_0_, part0_.outgoing_serial_number как outgoin17_39_0_, part0_.part_number как part_nu18_39_0_, part0_.previous_job_numbers как previou19_39_0_, part0_.repair_markingas repair_20_39_0_, part0_.scrappред, как scrappe21_39_0_, part0_.tag_number как tag_num22_39_0_, part0_.time_since_new в time_si23_39_0_, part0_.last_updated_by как last_up24_39_0_, part0_.last_updated_date как last_up25_39_0_, part0_.webcrt_job_id как webcrt_26_39_0_, part0_.webcrt_part_id как webcrt_27_39_0_, event1_.id в id1_12_1_, event1_.asset_serial_number какasset_se2_12_1_, event1_.certificates_required, как certific3_12_1_, event1_.is_child, как is_child4_12_1_, event1_.combustion_type_id, как combust47_12_1_, event1_.comments, как comments5_12_1_, event1_.component_id, как compone48_12_1_, event1_.contractual_due_date, как contract6_12_1_, event1_.contractual_start_date, как contract7_12_1_, event1_.cpm, как cpm8_12_1_,event1_.created_by, как created_9_12_1_, event1_.creation_date как creatio10_12_1_, event1_.location_id, как locatio49_12_1_, event1_.customer_name как custome11_12_1_, event1_.customer_po как custome12_12_1_, event1_.drawing_number как drawing13_12_1_, event1_.email_sent_date как email_s14_12_1_, event1_.erp_network_numbэр, как erp_net15_12_1_, event1_.erp_project_number как erp_pro16_12_1_, event1_.ffh_total как ffh_tot17_12_1_, event1_.ffh_total_since_last_repair как ffh_tot18_12_1_, event1_.firing_temperature как firing_19_12_1_, event1_.frame_id, как frame_i50_12_1_, event1_.fuel_type_id, как fuel_ty51_12_1_, event1_.job_description как job_des20_12_1_, как event1_.job_numberjob_num21_12_1_, event1_.job_type, как job_typ22_12_1_, event1_.model_code как model_c23_12_1_, event1_.non_standard_repair_request, как non_sta24_12_1_, event1_.parent_id, как parent_52_12_1_, event1_.parts_initialized_from_webcrt как parts_i25_12_1_, event1_.planned_completion_date как planned26_12_1_, event1 _...........
Эти запросы делают весь вызов JPA очень медленным.
Ниже мой класс PartEventOperation
@Table(name = "part_event_operations", schema = "brs")
@Entity
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
public class PartEventOperation {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "part_id")
@Audited(withModifiedFlag = true, modifiedColumnName = "is_partId_mod")
private Part part;
@ManyToOne (fetch = FetchType.LAZY)
@JoinColumn(name = "event_operation_id")
@JsonBackReference
@Audited(withModifiedFlag = true, modifiedColumnName = "is_eventOperationId_mod")
private EventOperation eventOperation;
@Column(name = "operation_order")
@Audited(withModifiedFlag = true, modifiedColumnName = "is_operationOrder_mod")
private Long operationOrder;
.........
Даже добавление (fetch = FetchType.LAZY) не останавливает запускэти длинные запросы.Любая идея, как остановить эти запросы ??