2017-12-04 7 views
-1

레코드를 업데이트하려고하지만 새 레코드가 생성되는 대신 새 레코드가 생성됩니다.스프링 부트 업데이트시 중복 레코드

스프링 부트 및 각도 j를 사용하고 있습니다. if와 함께 돌면서 시도했지만 성공하지 못했습니다.

이것이 제가 화면에서 json을 얻는 방법이며 객체로 전달됩니다.

@RequestMapping(method = RequestMethod.POST, value = "/pacientes") 
    public HttpStatus cadastrarPacientes(@RequestBody ObjectNode json) throws ParseException { 

     SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy"); 

      Entidades entidades = new Entidades(); 
      if(json.get("pessoa") != null && json.get("pessoa").get("entidade") != null && json.get("pessoa").get("entidade").get("idEntidade") != null){ 
       entidades.setIdEntidade(json.get("pessoa").get("entidade").get("idEntidade").asLong()); 
       } 


      Pessoas pessoas = new Pessoas();    
      pessoas.setFoto(json.get("pessoa").get("foto").textValue() == null ? null : json.get("pessoa").get("foto").textValue()); 
      pessoas.setNomePai(json.get("pessoa").get("nomePai") == null ? null : json.get("pessoa").get("nomePai").textValue()); 
      pessoas.setNomeMae(json.get("pessoa").get("nomeMae") == null ? null : json.get("pessoa").get("nomeMae").textValue()); 
      pessoas.setDataNascimento(formato.parse(json.get("pessoa").get("dataNascimento").textValue())); 

      Paises pais = new Paises(); 
      pais.setIdPais(Long.parseLong(json.get("pessoasEnderecos").get("pais").get("idPais").textValue())); 

      Ufs uf = new Ufs(); 
      uf.setIdUf(Long.parseLong(json.get("pessoasEnderecos").get("uf").get("idUf").textValue())); 


      Municipios municipio = new Municipios(); 
      municipio.setIdMunicipio(Long.parseLong(json.get("pessoasEnderecos").get("municipio").get("idMunicipio").textValue())); 


      OrientacoesSexuais oSexual = new OrientacoesSexuais();      
      IdentidadesGenero iGene = new IdentidadesGenero();      
      TiposSanguineos tSanguineo = new TiposSanguineos(); 


      PessoasCaracteristicas pCarac = new PessoasCaracteristicas();   
      if(json.get("estatura")== null) { 
       pCarac.setEstatura(null); 
      } 
      else { 
       pCarac.setEstatura(json.get("pessoasCaracteristicas").get("estatura").asDouble()); 
      } 


      if(json.get("peso")== null) { 
       pCarac.setPeso(null); 
      } 
      else { 
       pCarac.setPeso(json.get("pessoasCaracteristicas").get("peso").asDouble()); 
      } 

      pCarac.setPessoa(new Pessoas()); 
      pCarac.setPessoa(pessoas); 
      pCarac.setEntidade(new Entidades()); 
      pCarac.setEntidade(entidades);   
      if(json.get("flagDeficiente")== null) { 
       pCarac.setFlagDeficiente(null); 
      } 
      else { 
       pCarac.setFlagDeficiente(json.get("pessoasCaracteristicas").get("flagDeficiente").asInt()); 
      } 

      if(json.get("flagDoador")== null) { 
       pCarac.setFlagDoador(null); 
      } 
      else { 
       pCarac.setFlagDoador(json.get("pessoasCaracteristicas").get("flagDoador").asInt()); 
      } 


      if(json.get("pessoasCaracteristicas") != null && json.get("pessoasCaracteristicas").get("tipoSanguineo") != null && json.get("pessoasCaracteristicas").get("tipoSanguineo").get("idTipoSanguineo") != null){ 
       tSanguineo.setIdTipoSanguineo(json.get("pessoasCaracteristicas").get("tipoSanguineo").get("idTipoSanguineo").asLong()); 
       pCarac.setTipoSanguineo(new TiposSanguineos()); 
       pCarac.setTipoSanguineo(tSanguineo); 
       } 
      pCarac.setTipoSanguineo(tSanguineo); 


      if(json.get("pessoasCaracteristicas") != null && json.get("pessoasCaracteristicas").get("identidadeGenero") != null && json.get("pessoasCaracteristicas").get("identidadeGenero").get("idIdentidade") != null){ 
       iGene.setIdIdentidade(json.get("pessoasCaracteristicas").get("identidadeGenero").get("idIdentidade").asInt()); 
       pCarac.setIdentidadeGenero(new IdentidadesGenero()); 
       pCarac.setIdentidadeGenero(iGene); 
       } 


      if(json.get("pessoasCaracteristicas") != null && json.get("pessoasCaracteristicas").get("orientacaoSexual") != null && json.get("pessoasCaracteristicas").get("orientacaoSexual").get("idOrientacao") != null){ 
       oSexual.setIdOrientacao(json.get("pessoasCaracteristicas").get("orientacaoSexual").get("idOrientacao").asInt()); 
       pCarac.setOrientacaoSexual(new OrientacoesSexuais()); 
       pCarac.setOrientacaoSexual(oSexual); 
       }   

      RacaCor racaCor = new RacaCor(); 


      Sexo sexo = new Sexo(); 
      sexo.setIdSexo(Long.parseLong(json.get("pessoasFisicas").get("sexo").get("idSexo").textValue())); 

      Nacionalidades nac = new Nacionalidades(); 


      Escolaridade escolaridade = new Escolaridade(); 

      Cbos cbos = new Cbos(); 

      EstadosCivis estadosCivis = new EstadosCivis(); 


      PessoasFisicas pFisicas = new PessoasFisicas(); 
      pFisicas.setCarteiraProfissional(json.get("pessoasFisicas").get("carteiraProfissional")== null ? null : json.get("pessoasFisicas").get("carteiraProfissional").textValue()); 
      pFisicas.setCertidaoObito(json.get("pessoasFisicas").get("certidaoObito")== null ? null : json.get("pessoasFisicas").get("certidaoObito").textValue()); 
      pFisicas.setCodigoReservista(json.get("pessoasFisicas").get("codigoReservista")== null ? null : json.get("pessoasFisicas").get("codigoReservista").textValue()); 

      if (json.get("dataObito") == null) { 
       pFisicas.setDataCadastroPisPasep(null); 
       } else { 
       pFisicas.setDataCadastroPisPasep(
         formato.parse(json.get("pessoasFisicas").get("dataObito").textValue())); 
       } 

      if (json.get("dataCadastroPisPasep") == null) { 
      pFisicas.setDataCadastroPisPasep(null); 
      } else { 
      pFisicas.setDataCadastroPisPasep(
        formato.parse(json.get("pessoasFisicas").get("dataCadastroPisPasep").textValue())); 
      } 

      if (json.get("emissaoCarteiraProfissional") == null) { 
      pFisicas.setDataCadastroPisPasep(null); 
      } else { 
      pFisicas.setDataCadastroPisPasep(
        formato.parse(json.get("pessoasFisicas").get("emissaoCarteiraProfissional").textValue())); 
      } 

      pFisicas.setCpf(json.get("pessoasFisicas").get("cpf")== null ? null : json.get("pessoasFisicas").get("cpf").textValue());  
      pFisicas.setEntidade(new Entidades()); 
      pFisicas.setEntidade(entidades); 
      if(json.get("pessoasFisicas") != null && json.get("pessoasFisicas").get("escolaridade") != null && json.get("pessoasFisicas").get("escolaridade").get("idEscolaridade") != null){ 
       escolaridade.setIdEscolaridade(json.get("pessoasFisicas").get("escolaridade").get("idEscolaridade").asLong()); 
       pFisicas.setEscolaridade(new Escolaridade()); 
       pFisicas.setEscolaridade(escolaridade); 
       } 

      if(json.get("pessoasFisicas") != null && json.get("pessoasFisicas").get("estadoCivil") != null && json.get("pessoasFisicas").get("estadoCivil").get("idEstadoCivil") != null){ 
       estadosCivis.setIdEstadoCivil(json.get("pessoasFisicas").get("estadoCivil").get("idEstadoCivil").asLong()); 
       pFisicas.setEstadoCivil(new EstadosCivis()); 
       pFisicas.setEstadoCivil(estadosCivis); 
       } 

      if(json.get("flagAtivo")== null) { 
       pFisicas.setFlagAtivo(null); 
      } 
      else { 
       pFisicas.setFlagAtivo(json.get("flagAtivo").intValue()); 
      } 

      pFisicas.setIdentidadeRg(json.get("pessoasFisicas").get("identidadeRg")== null ? null : json.get("pessoasFisicas").get("identidadeRg").textValue()); 
      if(json.get("pessoasFisicas") != null && json.get("pessoasFisicas").get("nacionalidade") != null && json.get("pessoasFisicas").get("nacionalidade").get("idNacionalidade") != null){ 
       nac.setIdNacionalidade(json.get("pessoasFisicas").get("nacionalidade").get("idNacionalidade").asLong()); 
       pFisicas.setNacionalidade(new Nacionalidades()); 
       pFisicas.setNacionalidade(nac); 
       } 
      pFisicas.setOrgaoEmissorRg(json.get("pessoasFisicas").get("orgaoEmissorRg")== null ? null : json.get("pessoasFisicas").get("orgaoEmissorRg").textValue()); 
      pFisicas.setPessoa(new Pessoas()); 
      pFisicas.setPessoa(pessoas); 
      pFisicas.setPisPasep(json.get("pessoasFisicas").get("pisPasep")== null ? null : json.get("pessoasFisicas").get("pisPasep").textValue()); 

      if(json.get("pessoasFisicas") != null && json.get("pessoasFisicas").get("racaCor") != null && json.get("pessoasFisicas").get("racaCor").get("idRacaCor") != null){ 
       racaCor.setIdRacaCor(json.get("pessoasFisicas").get("racaCor").get("idRacaCor").asLong()); 
       pFisicas.setRacaCor(new RacaCor()); 
       pFisicas.setRacaCor(racaCor); 
       } 

      pFisicas.setSecaoEleitoral(json.get("pessoasFisicas").get("secaoEleitoral")== null ? null : json.get("pessoasFisicas").get("secaoEleitoral").textValue()); 
      pFisicas.setSerieCarteiraProfissional(json.get("pessoasFisicas").get("serieCarteiraProfissional")== null ? null : json.get("pessoasFisicas").get("serieCarteiraProfissional").textValue()); 
      pFisicas.setSexo(new Sexo()); 
      pFisicas.setSexo(sexo); 
      pFisicas.setTituloEleitor(json.get("pessoasFisicas").get("tituloEleitor")== null ? null : json.get("pessoasFisicas").get("tituloEleitor").textValue()); 
      pFisicas.setUfOrgaoEmissor(json.get("pessoasFisicas").get("ufOrgaoEmissor")== null ? null : json.get("pessoasFisicas").get("ufOrgaoEmissor").textValue()); 
      pFisicas.setZonaEleitoral(json.get("pessoasFisicas").get("zonaEleitoral")== null ? null : json.get("pessoasFisicas").get("zonaEleitoral").textValue()); 

      if(json.get("pessoasFisicas") != null && json.get("pessoasFisicas").get("cbo") != null && json.get("pessoasFisicas").get("cbo").get("idCbo") != null){ 
       cbos.setIdCbo(json.get("pessoasFisicas").get("cbo").get("idCbo").asLong()); 
       pFisicas.setCbo(new Cbos()); 
       pFisicas.setCbo(cbos); 
       } 


      TiposContatos tContatos = new TiposContatos();   

      PessoasContatos pContato = new PessoasContatos(); 
      pContato.setContato(json.get("contato")== null ? null : json.get("contato").textValue()); 
      pContato.setEntidade(new Entidades()); 

      if(json.get("pessoasContatos") != null && json.get("pessoasContatos").get("tipoContato") != null && json.get("pessoasContatos").get("tipoContato").get("idTipoContato") != null){ 
       tContatos.setIdTipoContato(json.get("pessoasContatos").get("tipoContato").get("idTipoContato").asInt()); 
       pContato.setTipoContato(new TiposContatos()); 
       pContato.setTipoContato(tContatos); 
       } 



      PessoasEnderecos pessoasEnderecos = new PessoasEnderecos(); 
      pessoasEnderecos.setCep(json.get("pessoasEnderecos").get("cep")== null ? null : json.get("pessoasEnderecos").get("cep").textValue()); 
      pessoasEnderecos.setNomeLogradouro(json.get("pessoasEnderecos").get("nomeLogradouro")== null ? null : json.get("pessoasEnderecos").get("nomeLogradouro").textValue()); 


      Pacientes pac = new Pacientes();  
      pac.setPessoa(new Pessoas()); 
      pac.setPessoa(pessoas); 
      pac.setCns(json.get("cns")== null ? null : json.get("cns").textValue()); 
      pac.setObservacoesAlergias(json.get("observacoesAlergias")== null ? null : json.get("observacoesAlergias").textValue());   
      if(json.get("flagAlergico")== null) { 
       pac.setFlagAlergico(null); 
      } 
      else { 
       pac.setFlagAlergico(json.get("flagAlergico").asInt()); 
      } 

      pac.setCnsResponsavel(json.get("cnsResponsavel")== null ? null : json.get("cnsResponsavel").textValue()); 
      pac.setCpfResponsavel(json.get("cpfResponsavel")== null ? null : json.get("cpfResponsavel").textValue());   
      pac.setNomeResponsavel(json.get("nomeResponsavel")== null ? null : json.get("nomeResponsavel").textValue()); 

      //update here 
      if(json.get("idPaciente").asInt() != 0) { 
       pacientesService.alterar(pFisicas, pCarac,pessoasEnderecos, pac); 

      } 
      else { //save here 
       pacientesService.cadastrarPacientes(pFisicas, pCarac,pessoasEnderecos, pac); 
      } 


     return HttpStatus.CREATED; 
    } 

난 아무것도 .. 내 서비스 클래스를 표시하지 않습니다

//save here 
     @Transactional 
       public void cadastrarPacientes(PessoasFisicas pFisicas, 
PessoasCaracteristicas pCarac,PessoasEnderecos pessoasEnderecos, Pacientes pac) { 
        pacRepository.saveAndFlush(pac); 
        pessoasEnderecosRepository.saveAndFlush(pessoasEnderecos); 
        pesFisicasRepository.saveAndFlush(pFisicas); 
        pescaracteristicasRepository.saveAndFlush(pCarac); 

       } 

@Transactional 
     public void alterar(PessoasFisicas pFisicas, PessoasCaracteristicas 
     pCarac,PessoasEnderecos pessoasEnderecos, Pacientes pac) { 
      pacRepository.saveAndFlush(pac); 
      pessoasEnderecosRepository.saveAndFlush(pessoasEnderecos); 
      pesFisicasRepository.saveAndFlush(pFisicas); 
      pescaracteristicasRepository.saveAndFlush(pCarac); 

     } 

어디 내 실수입니다 .. 여기에 업데이트 //?

은 당신이 당신의 JSON의 기본 키 ( idPaciente)가 아닌 객체 pac에, 그래서 당신이 레코드를 업데이트하기 전에 기본 키를 설정해야 내 다시

{"idPaciente":161,"pessoa":{"idPessoa":165,"dataNascimento":"02/01/1987"... 
+0

기본 키가 누락 된 것 같습니다. 업데이트하는 대신 레코드를 생성하는 것입니다. –

+0

@Java 제 질문을 수정했습니다. json의 기본 키가 있습니다. –

+0

json에 기본 키 (idPaciente)가 있지만 pac이 아니기 때문에, 레코드를 업데이트하기 전에 pac의 기본 키를 설정해야합니다. –

답변

1

이 JSON을 얻었다.