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

Atualizar múltiplas linhas do BD com JPA?

É possível atualizar varias linhas de uma vez só de uma tabela do meu banco de dados? Ex: Tenho uma tabela que se chama item_tarefa, onde todas as linhas possuem um ID como chave primária e uma outra coluna de valores, preciso atualizar os valores de várias rows de uma vez só.

5 respostas

É possível sim Gabriel, você pode fazer isso de diversas maneiras, uma delas é utilizando @NamedQuery ou varregando uma lista de objetos, modificando o campo e salvando um á um.

Espero ter ajudado.

Estou usando Spring MVC, você saberia como eu faço pra trazer vários objetos da view para o controller? Assim faria um lasso de repetição onde os objetos são atualizados pela JPA.

Você tem que definir os valores do inputs como um array, por exemplo:

<input name="objetos[0].nome">
<input name="objetos[1].nome">
<input name="objetos[2].nome">

A ideia seria essa, ai no seu controller, você deve estrar uma lista com o mesmo nome:

public void salvar(List<Objetos> objetos) {}

Seria mais ou menos esse o caminho.

solução!

Deu certo cara! Puxei uma lista de objetos por JSON e dei merge dentro de um loop foreach. Ficou assim:

@PostMapping("/addTeste")
    @ResponseBody
    public ModelAndView addTeste(@RequestBody List<ItemTarefa> itemTarefa) {

        ModelAndView modelAndView = new ModelAndView();
        for (ItemTarefa itemTarefa2 : itemTarefa) {
            ItemTarefaService.update(itemTarefa2);
        }

        modelAndView.setViewName("redirect:/producoes/all");

        return modelAndView;

    }

Valeu!

É isso mesmo, boa mano \o/