Escolar Documentos
Profissional Documentos
Cultura Documentos
Para
isso, temos que atualizar nossa model colocando o atributo cpf.
model pessoa:
package com.aulawb.model;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="Pessoa")
public class Pessoa implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
private String nome;
private String cpf; // criando o atributo cpf
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
---> Depois de criar o atributo cpf na model, vamos no pessoaRepository e vamos
criar a assinatura do método para buscar pelo cpf.
pessoa repository:
package com.aulawb.repository;
import javax.persistence.NamedQuery;
import org.springframework.data.jpa.repository.JpaRepository;
import com.aulawb.model.Pessoa;
---> Feito isso, vamos criar o web service para buscar pelo cpf na classe
pessoacontroller.
pessoa controller:
package com.aulawb.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.aulawb.model.Pessoa;
import com.aulawb.repository.PessoaRepository;
@Controller
@RequestMapping(path="")
public class PessoaController {
@Autowired
private PessoaRepository pessoaRepository;
-----------------------------------------------------------------------------------
-------------------------------------------------------------
## IMPORTANTE ##
1 - Pensando em uma situação onde temos que pegar mais de um campo, por exemplo,
buscar por nome e data de nascimento(SELECT * from pessoa where nome like mario and
datanascimento like 09/09/1998). Partindo do ponto que duas pessoas tem o mesmo
nome, devemos diferenciar pela data de nascimento. Pensando nisso, podemos fazer
dois RequestParam colocando em um o nome e no outro a data de nascimento. Criamos
lá no repository um método findByNomeLikeAndDataNascimento. Dessa forma, ele monta
para a gente. Ou seja, podemos fazer uma busca com mais de um parametro.
2 - Digamos que queremos fazer uma busca mais incrementada do que uma busca por
atributos. Para isso, temos que usar JPQL através da anotação @NamedQuery. Por
exemplo:
No pessoa repository:
Ou seja, se tivermos que criar um método que fuja do que o findBy ou os métodos já
existentes no repository possam resolver, podemos criar usando JPQL.
-----------------------------------------------------------------------------------
--------------------------------------------------------------
---> AGora vamos criar um método para deletar tudo.
pessoa controller:
pessoa controller:
package com.aulawb.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.aulawb.model.Pessoa;
import com.aulawb.repository.PessoaRepository;
@Controller
@RequestMapping(path="")
public class PessoaController {
@Autowired
private PessoaRepository pessoaRepository;