3
respostas

Utilização do merge para inserção de dados

Olá pessoal,

Por favor, estou com uma dúvida com relação ao merge. Estava fazendo alguns testes e percebi que, mesmo se você enviar uma classe em estado transient para o método merge, ele fará o insert no banco de dados.

Como estou fazendo um CRUD, posso deixar o mesmo método GRAVAR com o merge tanto para atualizações quanto inserções, ou é melhor deixar o persist para quando vierem os dados transients e merge para os detached?

Obrigado .

3 respostas

Oi Ismael, tudo bem ?

Lembra que a responsabilidade do merge é sempre pegar um objeto que um dia foi managed e deixar ele managed novamente.

Olá Matheus, tudo bem e você?

Certo, entendi o recado..rsrs..

Agora só uma questão, que não sei se seria referente a isso, mas acredito que essa parte se encaixe. Se tenho um CRUD, o formulário terá tanto inclusões quanto alterações. O ideal seria ter apenas um método identificando se existe um ID e, caso não tenha chamo o persist e caso tenha chamo o merge?

Obrigado.

Pra esse cenário o merge faz mais sentido, dado que os campos da sua tela, não vão estar vinculados com o seu banco, além do objeto, não ser managed sendo que em algum momento ele foi.