Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Problema ao salvar uma lista de String - JAVA

Pessoal boa tarde, Estou com um problema aqui onde eu tenho no banco PostgreSQL um campo do tipo "_text", acontece que lá eu posso gravar uma lista de string como por exemplo : {url1,url2,url3}.

O meu problema é na hora de usar o enpoint PATCH, quando eu quero atualizar esse campo, ele carrega esse atributo dentro do objeto e realiza o save. mas no banco de dados fica null.

Como é um código interno eu não posso mostrar mas vou fazer um exemplo aqui de como está hoje:

banco de dados: id: 1

nome: fabio

endereco: "{rua1},{rua2}"

agora estou fazendo o patch passando só o endereço: body:

{
     "endereco": ["url1,url2,url3,url4,url5"]
}

PessoaService

public void updatePatch(PessoaSaveDto dto, Long id) {
        Pessoa pessoa = getById(id); //buscando por pessoa
        boolean needUpdate = false;
        Pessoa mapper = saveMapper.toEntity(dto);
        ...
        ...

        if (Objects.nonNull(mapper.getEndereco())) {
            pessoa.setEndereco(dto.getEndereco());
            needUpdate = true;
        }

        pessoa.setLastUpdate(LocalDateTime.now(ZoneOffset.UTC));
        if (needUpdate) repositoryWrite.save(pessoa);
}

Acontece que quando ele faz a ação save, inspecionando ele vejo que dentro do objeto está carregando o atributo endereco atualizado, depois quando termina a ação e vejo no banco ele está nulo.

Lembrando que passando um novo endereço ou não, na hora de salvar ele fica nulo, ou seja, se eu quiser fazer um patch do nome para "fabio barros dos santos", ele atualiza essa informação e a coluna endereco ao invés de ficar intacta, muda para null fazendo com que perca esse dado.

O tipo do atributo endereço é:

private String[] endereco;

2 respostas

oooooookk

solução!

Fabio, talvez no momento que vc leu minha pergunta estava desatualizada.

Se puder ler novamente, estou garrado de mais nesse problema aqui.