| Você está aqui: JPA - Java Persistence Architecture API - Arquitetura de Persistência Java ::: Interfaces, Classes e Componentes ::: EntityManager | 
| Atualizando um registro em uma tabela do banco de dados usando o método merge() da interface EntityManagerQuantidade de visualizações: 8540 vezes | 
| O método merge() da interface EntityManager é usado quando precisamos atualizar uma entidade no contexto de persistência do JPA. Este método possui a seguinte assinatura: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <T> T merge(T entity) O método recebe como parâmetro a instância a ser atualizada e retorna a instância já atualizada. Veja um exemplo: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package estudosjpa;
import entidades.Cliente;
import java.util.Date;
import javax.persistence.*;
public class EstudosJPA {
  public static void main(String[] args) {
    // vamos criar o EntityManagerFactory a partir do contexto de persistência
    EntityManagerFactory emf = 
      Persistence.createEntityManagerFactory("LocadoraService");
    
    // vamos obter um objeto da interface EntityManager
    EntityManager em = emf.createEntityManager();
    
    // vamos obter o cliente com o id 4
    Cliente c = em.find(Cliente.class, 4);
    // o cliente foi encontrado? vamos atualizar seus dados, menos o id
    if(c != null){
      c.setNome("Roberto Carlos Augusto");
      c.setEmail("roberto@arquivodecodigos.net");
      c.setDataCadastro(new Date());
      
      // vamos iniciar a transação e atualizar o registro no banco de dados
      em.getTransaction().begin(); // inicia a transação
      Cliente temp = em.merge(c); // atualiza este cliente
      em.getTransaction().commit(); // finaliza a transação
      
      System.out.println("Dados atualizados. O novo nome do cliente é: " 
        + c.getNome());
    }
    else{
      System.out.println("Registro não encontrado.");  
    }
  
    em.close(); // fecha o EntityManager
    emf.close(); // fecha o EntityManagerFactory
  }
}
Quando executamos este código, o log do EclipseLink mostrará os seguintes comandos SQL: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- --SELECT ID, data_cadastro, EMAIL, NOME FROM clientes WHERE (ID = ?) bind => [4] --UPDATE clientes SET data_cadastro = ?, EMAIL = ?, NOME = ? WHERE (ID = ?) bind => [2013-06-01 15:14:32.144, roberto@arquivodecodigos.net, Roberto Carlos Augusto, 4] Dados atualizados. O novo nome do cliente é: Roberto Carlos Augusto Observe que o método merge() pode disparar uma exceção do tipo IllegalArgumentException se a instância não for uma entidade ou for uma entidade fora do contexto de persistência. Uma exceção TransactionRequiredException poderá ser disparada se o método merge() for chamado em um gerenciador de entidades controlado por um contâiner (container-managed entity manager) do tipo PersistenceContextType.TRANSACTION e não houver transação ativa. | 
|  Link para compartilhar na Internet ou com seus amigos: | 
| Veja mais Dicas e truques de JPA - Java Persistence Architecture API - Arquitetura de Persistência Java | 
| Dicas e truques de outras linguagens | 
| E-Books em PDF | ||||
| 
 | ||||
| 
 | ||||
| Linguagens Mais Populares | ||||
| 
			   1º lugar: Java | 


 
 





