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(...) {
//
}
}
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)