Spring Data JPA @Query UPDATE не обновляется? - PullRequest
0 голосов
/ 21 февраля 2020

Контроллер:

    public CarModel updateCarParameters(@RequestBody CarModel carModel){
    CarModel updated = carService.updateCarParameters(carModel);
    return updated;
    }

Служба:

 public CarModel updateCarParameters(CarModel carModel){
    // check if car exists and validate new updated params

    String brand = carModel.getCarBrand();
    int id = carModel.getCarId();

    System.out.println(brand + " " + id);
    int i = carRepository.updateCar(brand,  id);

    System.out.println("Records changed ? : " + i );
    return null;
}

У меня есть JSON:

  {
    "carId" : 4,
    "carBrand": "Mazda"
  }

Запрос на обновление:

String UPDATE_CAR = " UPDATE car_info c SET c.car_brand = :brand WHERE c.car_id = :id";


@Modifying(clearAutomatically = true)
    @Transactional
    @Query(value = UPDATE_CAR, nativeQuery = true)
    int updateCar(@Param("brand") String brand, @Param("id") int id);

при прохождении, например, c .carBrand = 'Mazda' c .car_id = 8 не влияет на базу данных

возвращается CONSOLE:

Mazda 8            < -- System.out.println() before executing statement
Hibernate:  UPDATE car_info c SET c.car_brand = ? WHERE c.car_id = ?  
Records changed ? : 0   < -- System.out.println() after executing statement

in MySQL запрос работает нормально:

UPDATE car_info c SET car_brand = 'Hello' WHERE car_id = 4;

enter image description here

...