Как правильно создать собственный запрос в Spring-Data-JPA - PullRequest
0 голосов
/ 27 мая 2020

Я столкнулся с проблемой, из-за которой при запуске приложения весенней загрузки с помощью собственного метода запроса я получаю исключение.

Мой класс репозитория ниже

public interface ProductRepository extends Repository<Product,Integer> {

@Query(name = "SELECT p.rate FROM Product p WHERE p.id=:id")
public Optional<String> findRateById(@Param("id") int id);

@Modifying
@Query(name = "UPDATE Product p set p.productName=:productName WHERE p.id=:id")
public int updateProductNameById(@Param("id") int id,@Param("productName") String 
productName);

}

И исключение, которое я получаю

Caused by: java.lang.IllegalArgumentException: Failed to create query for method public abstract int com.spring.data.jpa.repository.ProductRepository.updateProductNameById(int,java.lang.String)! No property updateProductNameById found for type Product!

1 Ответ

1 голос
/ 27 мая 2020

Свойство name в аннотации @Query определяет использование NamedQuery. Если вы хотите использовать именованный запрос, вам следует использовать аннотацию @NamedQuery в своей сущности.

@Entity
@Table
@NamedQuery(name="updateProduct", query="UPDATE PRODUCT ....")
public class Product 

Подробнее об этом можно прочитать здесь JPA

Если вы не хотите использовать namedquery than, просто удалите свойство name внутри аннотации @Query .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...