我有一些 restfull 服務,并且 get 和 getall 對我來說正常作業,但我無法更新用戶。
這是我的服務類:
@Service
public class UsuarioService{
@Autowired
UsuarioRepository usuarioRepository;
public ArrayList<Usuario> obtenerUsuarios(){
return (ArrayList<Usuario>) usuarioRepository.findAll();
}
public Usuario guardarUsuario(Usuario usuario) {
return usuarioRepository.save(usuario);
}
public Usuario modificarUsuario(Long id, Usuario usuario) {
Optional<Usuario> user = usuarioRepository.findById(id);
if(user.isPresent())
{
usuarioRepository.save(usuario);
return usuario;
}
return null;
}
}
這是我的 UserController 類:
@RestController
@RequestMapping("/usuario")
public class UsuarioController {
@Autowired
UsuarioService usuarioService;
@GetMapping()
public ArrayList<Usuario> obtenerUsuarios(){
return usuarioService.obtenerUsuarios();
}
@PostMapping
public Usuario guardarUsuario(@RequestBody Usuario usuario) {
return this.usuarioService.guardarUsuario(usuario);
}
@PutMapping("{id}")
public Usuario modificarUsuario(@PathParam("id") Long id, @RequestBody Usuario usuario) {;
return this.usuarioService.modificarUsuario(id, usuario);
}
}
為什么不能用郵遞員更新用戶?

uj5u.com熱心網友回復:
您的請求負載不應該是一個陣列,它應該如下所示。還將 @PathParam("id") 更改為 @PathVariable("id")
{
"name" : ""
"email" : ""
}
看起來您的 modificarUsuario 方法也不正確,應該類似于
public Usuario modificarUsuario(Long id, Usuario usuario) {
Optional<Usuario> user = usuarioRepository.findById(id);
if(user.isPresent())
{
user.setName(usuario.getName())
user.setEmail(usuario.getEmail)
return usuarioRepository.save(user);
}
return null;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/513454.html
標籤:休息jpa宁静的网址
