Olá a todos, tenho um dúvida com relação aos métodos merge() e persist().
Qual a diferença entre usar o merge e o persist?
Estou tentando fazer uma classe padronizada com as pricipais operações de acesso ao banco para depois so extender nas outras classes, nesta classe padrão tenho o método alterar que seria responsável por modificar informações de um objeto no banco.
A minha dúvida é qual é o método correto a se utilizar no entity manager, merge ou insert mesmo.
a classe padrão:
public class PersistPadrao {
EntityManagerFactory emf= Persistence.createEntityManagerFactory("controleestoque");
EntityManager em = emf.createEntityManager();
EntityTransaction etrans = em.getTransaction();
public void inserir(Object obj) {
etrans.begin();
em.persist(obj);
etrans.commit();
}
public void alterar(Object obj) {//minha dúvida é com relação a este método!
etrans.begin();
em.merge(obj);//aqui devo usar merge mesmo
etrans.commit();
}
Lí a respeito de conceitos como o objeto estar attach ou não mas não consegui entender direito, desculpe a minha ignorância.