Hibernate fazendo multiplos inserts

2 respostas
B

Eai galera,

Estou com uma dúvida referente ao save do JPA/Hibernate.
Seguinte, para ficar mais claro, digamos que eu tenha as classes abaixo com os seus relacionamentos:

public class Pedido {
    private int id;
    
    @OneToMany(cascade=CascadeType.ALL, mappedBy="pedido")
    private List<Item> itens = new ArrayList<>();
}

public class Item {
    private int id;
    private String produto;

    @ManyToOne
    private Pedido pedido;
}

Digamos que eu instancie um objeto Pedido e adicione 3 itens:

Pedido p = new Pedido();
p.getItens().add(item1);
p.getItens().add(item2);
p.getItens().add(item3);

E utilize o save ou saveOrUpdate:

sessao.save( p );

Verificando os logs, são executado um insert para cada item:

insert into tabelaItem (id, produto, pedido) values(1, teste, 1);

insert into tabelaItem (id, produto, pedido) values(2, teste, 1);

insert into tabelaItem (id, produto, pedido) values(3, teste, 1);

minha dúvida é se tem como fazer com que executasse apenas um insert:

insert into tabelaItem (id, produto, pedido) values (1, teste, 1),(2, teste, 1),(3, teste, 1);

2 Respostas

javaflex

Hibernate não é muito eficiente, vai ficar enviando pro banco n INSERTs mesmo. Fica mais performático escrever um único SQL sob seu controle, com JDBC puro ou JDBC Template.

B

Atualmente nesses casos eu faço assim mesmo, mas dá um trampo kkk ai fiquei na dúvida se já tinha algo nesse sentido no hibernate, mas eh isso ai, SQL que segue rs Vlw!

Criado 16 de junho de 2019
Ultima resposta 16 de jun. de 2019
Respostas 2
Participantes 2