Last active
October 11, 2020 14:07
-
-
Save thiagolenz/8376af4dbb102046f0adcfa4b9895fcb to your computer and use it in GitHub Desktop.
PessoaAPIDTOService
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| @Service | |
| public class PessoaService { | |
| @Autowired private PessoaRepository pessoaRepository; | |
| @Autowired private EnderecoRepository enderecoRepository; | |
| public PessoaDTO save (PessoaDTO pessoaDTO) { | |
| Pessoa pessoa = convertFrom(pessoaDTO); | |
| pessoaRepository.save (pessoa); | |
| saveEndereco (pessoaDTO, pessoa); | |
| pessoaDTO.setId (pessoa.getId()); | |
| return pessoaDTO; | |
| } | |
| /** | |
| Salva o endereço somente se não encontrar um identico | |
| Utiliza o recurso QueryByExample | |
| */ | |
| private saveEndereco (PessoaDTO pessoaDTO, Pessoa pessoa) { | |
| Endereco endereco = convertFrom(pessoaDTO, pessoa.getId()); | |
| List<Endereco> existents = enderecoRepository.findAll (Example.of (endereco)); | |
| if (existents.isEmpty()) { | |
| enderecoenderecoRepository.save (endereco); | |
| } | |
| } | |
| // metodos de conversao de DTO para Entity | |
| private Pessoa convertFrom (PessoaDTO pessoaDTO) { | |
| Pessoa pessoa = new Pessoa (); | |
| pessoa.setNome(pessoaDTO.getNome()); | |
| pessoa.setId(pessoaDTO.getId()); | |
| return pessoa; | |
| } | |
| private Endereco convertFrom (PessoaDTO pessoaDTO, Long pessoaId) { | |
| Endereco endereco = new Endereco(); | |
| endereco.setPessoaId (pessoaId); | |
| endereco.setNome(pessoaDTO.getRua()); | |
| // restante dos get/set | |
| return endereco; | |
| } | |
| } | |
| @Repository | |
| public class PessoaRepository extends JpaRepository<Pessoa, Long> {} | |
| @Repository | |
| public class EnderecoRepository extends JpaRepository<Endereco, Long>, | |
| QueryByExampleExecutor<Endereco> { | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment