Carregando um atributo de entidade após seu carregamento

As vezes temos a necessidade de utilizarmos atributos transients, que são atributos que não são persistidos, e em algumas demandas precisamos guardar um valor inicial vindo do banco nesse campo e por padrão o JPA não irá preencher esse campo, para resolver esse problema temos a anotação @PostLoad que executa o método após o carregamento da entidade.

@Entity
public class CarregandoAtributo {
 
    @Id
    private Long id;

    private BigDecimal valorVenda;
 
    @Transient
    private BigDecimal valorInicialVenda;
 
    @PostLoad
    private void iniciarValorVenda() {
        this.valorInicialVenda = this.valorVenda;
    }
...

Após a entidade ser carregada, pode ser por uma critéria, HQL ou até mesmo pelo find do JPA, será executado o método iniciarValorVenda que atribui o valor de valorVenda para valorInicialVenda que é transient.

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 )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.