Executando métodos em eventos no ciclo de vida de entidades

Dentro do contexto do java EE é possível realizar alguns eventos baseados no ciclo de vida de uma entidade, como isso conseguimos fazer ações no objeto antes que ele seja inserido, atualizado, removido ou carregado. Isso é possível através dos callback methods para entidades.

O JPA disponibiliza anotações para marcar em que momento(pre/post – antes/depois) o método será executado em relação a ações do entityManager no objeto.

Anotações:

  • @PrePersist: executa método anotado antes da entidade ser persistida;
  • @PostPersist: executa método anotado após entidade ser persistida;
  • @PreRemove:executa método anotado antes da entidade ser removida;
  • @PostRemove: executa método anotado após entidade ser removida;
  • @PreUpdate: executa método anotado antes da entidade ser atualizada;
  • @PostUpdate:executa método anotado após entidade ser persistida;
  • @PostLoad: executa método anotado após entidade carregada(consultada);

Exemplo:

import javax.persistence.PrePersist;

public class Produto {

  private LocalDate dataCadastro;

  @PrePersist
  public void preSave() {
    this.dataCadastro = LocalDate.now();
  }

...

Quando executado entityManager.persist(produto), o método preSave será invocado antes do persist, porque está anotado com @PrePersist.

Observação
As anotações podem ser utilizadas em métodos de classes: @Entity, @Mappedsuperclass ou @EntityListerners.
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s