I think the error is a type missmatch exception, but i don't know why i am getting it.
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'carController' defined in file [C:\Users\aleks\Desktop\Spring Boot With Rest\app\target\classes\carMarket\app\controllers\CarController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'carServiceImpl' defined in file [C:\Users\aleks\Desktop\Spring Boot With Rest\app\target\classes\carMarket\app\services\implementations\CarServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'carRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract carMarket.app.orm.Car carMarket.app.repositories.CarRepository.updateCar(java.lang.String,java.lang.String,java.lang.Long,java.math.BigDecimal)!
This the service i am calling it with
@Transactional
@Override
public boolean editCar(long userId, long carId, CarBindingModel carBindingModel)
{
Car car = this.carRepository.findById(carId);
Car map = this.modelMapper.map(carBindingModel, Car.class);
String make = carBindingModel.getMake();
String model = carBindingModel.getModel();
Long milesDriven = carBindingModel.getMilesDriven();
BigDecimal price = carBindingModel.getPrice();
Car car1 = this.carRepository.updateCar(make, model, milesDriven, price);
return false;
}
And this is the ORM
@Entity(name = "cars")
public class Car
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
private String make;
@NotNull
private String model;
@NotNull
private BigDecimal price;
@NotNull
private Long milesDriven;
@JoinColumn(name = "user_id", referencedColumnName = "id")
@OneToOne(fetch = FetchType.EAGER)
private User user;
Of course it has public getters and setters and a public empty constructor. This error accures only in the update method, i don't have any problems with delete or find method..
This is the query it self
@Modifying
@Query(value = "UPDATE Car as s set s.make= :make, s.model= :model, s.milesDriven= :milesDriven, s.price= :price")
Car updateCar(@Param(value = "make") String make, @Param(value = "model") String model, @Param(value = "milesDriven") Long milesDriven, @Param(value = "price") BigDecimal price);
Btw this is compile time error.