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 JPAQuantidade de visualizações: 6715 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: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:
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: 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. |
|
|
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 |






