@Query в JPA, выбрасывающий исключение нулевого указателя - PullRequest
0 голосов
/ 26 января 2020

Я получаю исключение nullPointerException от моего пользовательского метода jpa findShiftNameById () в моем проекте планировщика смены (ссылка на github ниже). Я использовал аннотацию @Query внутри интерфейса ShiftDetailsRepo для реализации метода. Пожалуйста, проверьте и дайте мне знать, что может быть причиной этого. Я попытался удалить параметр nativeQuery, но это дает не отображаемую ошибку shift_details. Я попытался изменить типы данных между int и long, а также изменить sd.shiftName на sd.shift_name (согласно имени столбца, которое доступно в моей фактической базе данных), но все же появляется та же ошибка nullPointerException.

Github link- https://github.com/Anupam5713/shiftPlannerAPI Метод вызывается в классе ShiftPlanService внутри пакета службы

Что-то не так в моем запросе ?

@Query(value = "select sd.shiftName from shift_details sd where sd.shiftId=:shiftId",nativeQuery=true)
    public String findShiftNameById(@Param("shiftId") int shiftId);

1 Ответ

0 голосов
/ 26 января 2020

Ниже приводится причина NPE. Вызов sdr выполняется до подключения зависимостей.

@Service
public class ShiftPlanService {

    @Autowired
    ShiftDetailsRepo sdr;
    String S1 = sdr.findShiftNameById(1);
    String S2 = sdr.findShiftNameById(2);

Переместите эти инициализации в метод @PostConstruct.

Пример

@PostConstruct
public void initDetails() {
    S1 = sdr.findShiftNameById(1);
    S2 = sdr.findShiftNameById(2);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...