Всякий раз, когда я запрашиваю таблицу, позволяющую Spring Data / Hibernate создать запрос 'findByLabelAndUserId' в моем коде, это всегда кажется вечным.
Я проверяю запрос на сервере sql, и он мгновенно возвращает результат.
Когда я тестирую запрос в моем проекте, он тратит более 4 секунд, чтобы получить 10 строк.
Вот что я думаю сделать:
используя @Query, но это займет слишком много времени, чтобы изменить многие методы.
Я добавил конструктор со всеми аргументами, но ничего не изменилось.
Я изменил метод выборки с нетерпеливого на ленивый, но ничего не изменилось
Я пытался настроить это свойство в URL-адресе jdbc: sendStringParametersAsUnicode = false
Это сокращает время на 0,5 секунды, но этого недостаточно.
Это мой код: LeaveController:
@RequestMapping(value = "/leaves-management/leaves", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
@PreAuthorize("hasAuthority('view_MY_LEAVE')")
public List<LeaveDto> getAllByUser(HttpServletRequest httpRequest) {
String token = httpRequest.getHeader(tokenHeader);
String username = jwtTokenUtil.getUsernameFromToken(token);
User user = userService.findByUsername(username);
List<Request> listRequests = requestService.findByLabelAndUserId(LabelRequest.LEAVE, user.getId());
return listModelToListDtoWithStatus(listRequests);
}
раздел сущности:
public class Request extends AbstractAuditEntity {
@Column(nullable = false)
@Enumerated(EnumType.STRING)
private LabelRequest label;
@Column(nullable = false)
@Enumerated(EnumType.STRING)
private Status status;
@ManyToOne(fetch = FetchType.LAZY)
private User user;
}
Что можно сделать, чтобы сократить время на построение запроса с помощью данных / гибернации Spring.