Versão atual:

Spring Boot, buscar pelo campo CPF nao pelo campo ID

Estou fazendo uma Api com java com Spring boot,

e gostaria que ele buscasse pelo CPF e nao pelo ID;

http://localhost:8080/pacientes/ID

http://localhost:8080/pacientes/Cpf (sera informado pelo usuario) http://localhost:8080/pacientes/cpf->http://localhost:8080/pacientes/77777785558 e tenho o seguinte campos na classe PACIENTE;

o ID gostaria de deixar como esta, para ele criar,deleta, e alterar, na url, gostaria de buscar pelo CPF. __CLASE DOMAIN__ @Entity public class Paciente implements Serializable{ private static final long serialVersionUID = 1L;

@Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id;

private Long cpf; private String nome;

public Paciente() { } public Paciente(Integer id,Long cpf, String nome) { super(); this.id = id; this.cpf = cpf this.nome = nome; }

[.gets sets.]


__PacienteRepository_ @Repository public interface PacienteRepository extends JpaRepository {

}

_PacienteResource__ @RestController @RequestMapping(value = "capientes") public class PacienteResource {

@Autowired PacienteService PacienteService;

@GetMapping(value = "/{id}") public ResponseEntity buscar(@PathVariable Integer id) { Paciente obj = PacienteService.findId(id); return ResponseEntity.ok().body(obj);

}

_PacienteService_

@Service public class PacienteService {

@Autowired PacienteRepository repo;

public Paciente findId(Integer id) { Optional obj = repo.findById(id); return obj.orElseThrow(() -> new ObjectNotFoundException("Objeto não encontrado! ID: " + id + ", Tipo"+ PacienteService.class.getName()));

}

public Paciente insert (Paciente obj) { obj.setId(null); return repo.save(obj); } public Paciente update (Paciente obj) { findId(obj.getId()); return repo.save(obj); } public void delete(Integer id) { findId(id); try { repo.deleteById(id); } catch (DataIntegrityViolationException e) { throw new DateIntegrityException("Não é possível excluir uma Paciente ");

}

} }


está funcionado , porem eu preciso ao invés de buscar pelo ID, quero buscar pelo cpf, que a pessoa ira informa, ficando assim:

http://localhost:8080/pacientes/77777788898788

Hoje ele esta buscando paciente somente pelo ID

http://localhost:8080/pacientes/1

Versão(1):

Ver a versão formatada

Spring Boot, buscar pelo campo CPF nao pelo campo ID

Comentário

new question