Java 更新Spring引导时重复记录

Java 更新Spring引导时重复记录,java,spring,spring-boot,spring-data,Java,Spring,Spring Boot,Spring Data,我试图对记录进行更新,但没有更新,而是创建了一条新记录 我使用的是spring boot和angular js。 我试着用if盘旋,但没有成功 这是我从屏幕获取json并将其传递给对象的方法 @RequestMapping(method = RequestMethod.POST, value = "/pacientes") public HttpStatus cadastrarPacientes(@RequestBody ObjectNode json) throws ParseExce

我试图对记录进行更新,但没有更新,而是创建了一条新记录

我使用的是spring boot和angular js。 我试着用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":161,"pessoa":{"idPessoa":165,"dataNascimento":"02/01/1987"...

您的json中有主键(
idPaciente
),但object
pac
中没有主键,因此您应该在更新记录之前设置主键。

我认为主键缺失,这就是为什么它要创建记录而不是updating@Java我已经修改了我的要求。。我在JSONY中获得了一个主键您在json中有主键(idPaciente),但在pac中没有,因此您需要在更新records@Java你说得对。。把你的答案写在这里。。