Я определил следующее RestRepository
для предоставления только GET /cars
:
@RepositoryRestResource
public interface CarRepository extends Repository<Car, String> {
@RestResource
List<Car> findAll();
}
Я также поместил следующую аннотацию для предоставления только аннотированных репозиториев:
spring.data.rest.detection-strategy=annotated
Все работает хорошокогда я звоню GET /cars
, но если я звоню PATCH /cars/test
, я получаю следующее исключение (с соответствующим кодом состояния 500):
java.lang.IllegalStateException: Repository doesn't have a find-one-method declared!
at org.springframework.data.repository.support.ReflectionRepositoryInvoker.lambda$invokeFindById$1(ReflectionRepositoryInvoker.java:143)
...
Вместо этого, если я звоню DELETE /cars/test
, я получаю метод 405Не разрешено (что кажется более правильным).
Это ошибка или предполагаемое поведение для Spring Data Rest?Если это задумано, как можно изящно отключить PATCH
? 1018 *