Você está aqui: JPA - Java Persistence Architecture API - Arquitetura de Persistência Java ::: Interfaces, Classes e Componentes ::: EntityManager

Como usar o método remove() da interface EntityManager para excluir uma instância de uma entidade em suas aplicações JPA

Quantidade de visualizações: 6399 vezes
O método remove() da interface EntityManager pode ser usado quando queremos excluir uma instância das entidades em nossas aplicações JPA, conquentemente, excluindo o registro correspondente na base de dados. 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)
----------------------------------------------------------------------

void remove(java.lang.Object entity)

Veja que só precisamos fornecer o objeto a ser excluído e o JPA já faz todo o restante do trabalho. 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 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 3
    Cliente c = em.find(Cliente.class, 3);
    // o cliente foi encontrado? vamos removê-lo da base de dados
    if(c != null){
      em.getTransaction().begin(); // inicia a transação
      em.remove(c); // exclui este cliente
      em.getTransaction().commit(); // finaliza a transação
      System.out.println("Registro excluído com sucesso.");
    }
    else{
      System.out.println("Registro não encontrado.");  
    }
  
    em.close(); // fecha o EntityManager
    emf.close(); // fecha o EntityManagerFactory
  }
}

Ao executarmos este código, a implementação JPA EclipseLink disparará 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 = 3)
DELETE FROM clientes WHERE (ID = 3)

Note que neste exemplo eu usei o método find() para localizar uma instância da classe Cliente com o id 3 e em seguida usei o método remove() para removê-la do banco de dados.

O método remove() pode lançar duas exceções:

a) IllegalArgumentException - se a instância fornecida não for uma entidade ou for uma entidade mas estiver desvinculada (detached) do contexto de persistência.

b) TransactionRequiredException - se a operação for iniciada 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

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
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á 28 usuários muito felizes estudando em nosso site.