JPA – Anotação @Transient o que é ?

Neste tutorial irei explicar o que é a anotação @Transient do JPA (Java Persistence API), e mostrar como ela funciona.

A anotação @Transient, é uma anotação do JPA, que serve para indicar que um atributo de uma classe não sera utilizado no banco de dados, ou em um método get para indicar que essa propriedade não será utilizada no banco de dados. Não será feito o mapeamento objeto relacional dele. Como é a relação do tipo de acesso a uma classe, ela é @Access(AccessType.FIELD) se estiver em um atributo, ou é @Access(AccessType.PROPERTY) se estiver em uma propriedade, método get.

Foi criada uma aplicação para o exemplo chamada Blog.

Vou mostrar primeiro a classe Categoria, que é uma classe como outra qualquer para ser usada com JPA. Ela possui as anotações @Entity e @Table.

JPA

Vou mostrar agora a classe Blog. A classe Blog faz referência a classe Categoria. A classe Blog é uma classe como outra qualquer para ser usada com JPA, ela possui as anotações @Entity e @Table. Essa classe tem alguns atributos, e um desses atributos é o publicar, que é do tipo Integer, para o tratamento de comportamento booleano. Foi criado o atributo flPublicar, para ser usado em conjunto com o atributo publicar, isso na camada de apresentação. Para facilitar o tratamento do campo booleano, é colocada a anotação @Transient que vai indicar que a o atributo flPublicar não será um campo da tabela Blog no banco de dados.

JPA

Normalmente, há uma certa confusão sobre o relacionamento entre a anotação @Transient e a palavra reservada transient do Java. A palavra reservada transient, se destina principalmlente a ignorar atributos durante a serialização de um objeto Java, mas também evita que esses atributos sejam persistidos ao utilizar JPA.

JPA

Uma observação, como demonstrar o comportamento da flag na camada de apresentação. Na classe do teste integrado, TesteCrudJPA, existe um fluxo de código para isso.

JPA

E na propriedade getFlPublicar da classe Blog, tem o tratamento para o comportamento booleano.

JPA

Em JPA o correto é utilizar a anotação @Transient, esse é o padrão, e não a palavra reservada transient.

Segue um exemplo de aplicação Java com JPA utilizando a anotação @Transient.

Baixar Código-Fonte via GitHub

No vídeo abaixo, irei mostrar este tutorial.

Para ver o vídeo no YouTube Clique Aqui

Por favor, deixe seu like se gostar da dica.

Fonte: https://www.oracle.com/java/technologies/persistence-jsp.html
https://javadoc.io/doc/org.eclipse.persistence/javax.persistence/2.2.0/javax/persistence/Transient.html
https://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.3.1.3

Esta entrada foi publicada em Java SE. Adicione o link permanenteaos seus favoritos.

Os comentários estão encerrados.