spring Data Jpa findFirst терпит неудачу, когда тип данных параметра метода является целочисленным

#spring-boot #jpa #spring-data-jpa

#spring-boot #jpa #spring-data-jpa

Вопрос:

Я использую spring-data-jpa, и в моем интерфейсе JpaRepository я использовал функцию ‘findFirst‘, но она терпит неудачу, когда мой метод репозитория имеет целочисленный параметр.

Репозиторий:

 public interface EmployeeRepository extends
    JpaRepository<Employee, Integer> {

Employee findFirstByAgeOrderByEmployeeId(int age);

}
  

Класс сущности:

 @Entity
Employee{

@Id
int employeeId;
int age;
String name;

}
  

Запрос, который он генерирует, выглядит следующим образом

 select e.employeeId, e.age, e.name from Employee e where e.age = ? Order by e.employeeId limit ?
  

Получаю следующую ошибку

org.springframework.dao.InvalidDataAccessApiUsageException: для запросов с именованными параметрами необходимо использовать предоставление имен для параметров метода. Используйте @Param для параметров метода запроса или когда на Java 8 используйте javac flag -parameters.; вложенным исключением является java.lang.Исключение IllegalStateException: для запросов с именованными параметрами необходимо использовать предоставление имен для параметров метода. Используйте @Param для параметров метода запроса или когда на Java 8 используйте флаг -параметры javac.

Ответ №1:

возможно, ваш запрос не подходит: findFirstByAge»Oderder»по EmployeeID попробуйте «Заказать».

И используйте объекты вместо примитива (целое число вместо int), иногда hibernate использует методы получения и установки для доступа к данным.

Комментарии:

1. Это была проблема с опечаткой Alejandrao/