Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

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 EntityManager

Quantidade de visualizações: 8370 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:

<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:

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");
......


Quando executamos este código, o log do EclipseLink mostrará os seguintes comandos SQL:

--SELECT ID, data_cadastro, EMAIL, NOME FROM clientes WHERE (ID = ?)
  bind => [4]
--UPDATE clientes SET data_cadastro = ?, EMAIL = ?, NOME = ? WHERE (ID = ?)
......


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

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 33 usuários muito felizes estudando em nosso site.