DEV Community

Cover image for Anotación @Transient
Ciro
Ciro

Posted on

Anotación @Transient

Mediante la anotación @Transient (o transitorio en español) podemos crear atributos en clases de tipo entidad (anotadas con @Entity) que no van a persistir en la base de datos. Igualmente, los atributos anotados con @Transient no se mapean con ninguna columna de la entidad.

Gracias a esta funcionalidad, podemos crear comportamientos como el siguiente:

@Entity
class User {

    @Id
    private Long id;

    @Column(name = "name")
    private String name;

    @Column(name = "group")
    private UserGroup group;

    @Column(name = "type")
    private UserType type;

    @Transient
    private PermissionLevel permissionLevel; // <- Este atributo NO se almacenará en la base de datos

    public int setPermissionLevel(...) {
        //
    }

}
Enter fullscreen mode Exit fullscreen mode

Podemos ver que el atributo PermissionLevel no se almacenará en la base de datos, ya que puede que queramos actualizar su valor en tiempo de ejecución, utilizando en primer lugar unos valores o criterios, y según el usuario interactúa con la aplicación que estos valores cambien.

Top comments (0)