You are not checking if user is present or not and you creating new record by calling save
method. save
method always insert new row if id in given object is not present in DB, in your case user
is having id 0
I guess, thats why it is inserting new record. You need to fetch the User from given id and update the existing record in DB.
Create one more method in service class
public Users getUserById(Integer id) {
return repositoryInterface.findById(id).orElse(null);
}
And then..
@PutMapping("update/{id}")
public Users updateUser(@PathVariable Integer id, @RequestBody Users user) {
Users userExisting = serveiceClass.getUserById(id);
if(userExisting == null){
throw Exception("User Not Found");
}
userExisting.setFname(user.getFname());
userExisting.setLname(user.getLname());
userExisting.setAddress(user.getAddress());
userExisting.setTelno(user.getTelno());
return serveiceClass.updateUserbyId(userExisting);
}
CLICK HERE to find out more related problems solutions.