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.

Image of Timescale

Timescale – the developer's data platform for modern apps, built on PostgreSQL

Timescale Cloud is PostgreSQL optimized for speed, scale, and performance. Over 3 million IoT, AI, crypto, and dev tool apps are powered by Timescale. Try it free today! No credit card required.

Try free

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more