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)

An Animated Guide to Node.js Event Loop

Node.js doesn’t stop from running other operations because of Libuv, a C++ library responsible for the event loop and asynchronously handling tasks such as network requests, DNS resolution, file system operations, data encryption, etc.

What happens under the hood when Node.js works on tasks such as database queries? We will explore it by following this piece of code step by step.