Я разрабатываю систему продаж автомобилей с использованием пружинной загрузки. Когда автомобильный дилер публикует автомобиль в продаже, по умолчанию для него устанавливается состояние «В ОЖИДАНИИ», и администратор должен одобрить сообщение. Я хочу обновить статус этого автомобиля, не обновляя другие атрибуты автомобиля (milleage, цена, модель и т. Д. c). Итак, я попытался с помощью пут, но я получаю ошибку, что POST не допускается Вот мой код, так далеко. Любые идеи для чего-то похожего на mysql набор операторов columnName = newValue, где id = id, который мой код выбирает с использованием @ PathVariable.
Репозиторий продуктов (для обновления одного столбца)
@Modifying
@Query(value = "update Product p set p.status = :status where p.carId= :carId")
void setUpdateStatus (@Param("status") String status, @Param("carId") Long carId);
Метод обслуживания продукта для обновления статуса.
public void updateStatus( Long carId){
productRepository.setUpdateStatus("APPROVED",carId);
}
Метод контроллера, который использует @PathVariable для получения идентификатора продукта из URL-адреса представления.
@PutMapping("/updateStatus/{carId}")
public void updateStatus(@PathVariable("carId") Long carId){
productService.updateStatus(carId);
}
Это моя часть просмотра тимелист, которая отвечает за URL, с которого я получаю идентификатор.
<form action="#" th:action="@{'/updateStatus/'+${pending.carId}}" th:method="put" >
<input type="hidden" name="_method" value="put" />
<button type="submit" id="Approve" name="Approve"> </button>
</form>
Я ожидал, что идентификатор использоваться для обновления статуса до УТВЕРЖДЕНО. но я получаю сообщение об ошибке Mehtod POST не допускается. Как вы можете видеть из вышеизложенного, мой метод = "поставить" не POST. Я не знаю, что происходит не так.