【发布时间】:2018-08-30 17:13:46
【问题描述】:
我需要将一个对象传递给 Spring Boot 端点(在 @RequestBody 中),并使用该对象使用 spring data jpa 查询数据库。
我的班级
@Entity(name = "PESSOA")
public class Pessoa {
private Long codigo;
private String nome;
private String cpf;
private String estadoCivil;
private LocalDate dataNascimento;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getCodigo() {
return codigo;
}
@Column
public String getNome() {
return nome;
}
@Column
public String getCpf() {
return cpf;
}
@Column
public String getEstadoCivil() {
return estadoCivil;
}
@Column
public LocalDate getDataNascimento() {
return dataNascimento;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public void setEstadoCivil(String estadoCivil) {
this.estadoCivil = estadoCivil;
}
public void setDataNascimento(LocalDate dataNascimento) {
this.dataNascimento = dataNascimento;
}
public void setCodigo(Long codigo) {
this.codigo = codigo;
}
public void setNome(String nome) {
this.nome = nome;
}
}
这是包含我的端点的类:
@RestController
public class PessoaService {
@Autowired
private PessoaRepository pessoaRepository;
@GetMapping("/pessoa")
public List<Pessoa> all() {
return pessoaRepository.findAll();
}
@GetMapping("/pessoa/{id}")
public Pessoa get(@PathVariable Long id) {
return pessoaRepository.findById(id).get();
}
@PostMapping("/pessoa")
public Pessoa create(@RequestBody Pessoa pessoa) {
return pessoaRepository.saveAndFlush(pessoa);
}
@PutMapping("/pessoa/{id}")
public Pessoa update(@PathVariable Long id, @RequestBody Pessoa pessoa) {
Pessoa pessoaExistente = pessoaRepository.findById(id).get();
BeanUtils.copyProperties(pessoa, pessoaExistente);
return pessoaRepository.saveAndFlush(pessoaExistente);
}
@DeleteMapping("/pessoa/{id}")
public Pessoa delete(@PathVariable Long id) {
Pessoa pessoaExistente = pessoaRepository.findById(id).get();
pessoaRepository.delete(pessoaExistente);
return pessoaExistente;
}
}
这是我的仓库:
@Repository
public interface PessoaRepository extends JpaRepository<Pessoa, Long> {
}
有一种方法可以创建类似的东西:
@GetMapping("/pessoa")
public List<Pessoa> filter(@RequestBody PessoaFilter filter) {
return pessoaRepository.findByFilter(filter);
}
Spring 数据提供了可以像过滤器一样使用的东西?
【问题讨论】:
标签: java spring spring-data-jpa