1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

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

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags spring java jpa ou faça a sua própria pergunta.