TypeOrm - Usando Vistas

PUBLICADO EL 12 Nov 2020, POR VICTOR CORNEJO

Todos nos hemos alegrado cuando descubrimos los ORM's por la facilidad con la que podemos acceder a la base de datos. Con el tiempo nuestras aplicaciones empiezan a volverse mas complejas y mas de alguna vez hemos llegado a la conclusión que debemos ejecutar una sentencia SQL en modo crudo ( Raw SQL Queries ).

TypeORM te permite crear una vista desde el código de programación y acceder a la misma sin necesidad de ejecutar de forma Raw la sentencia.

Beneficios

  • Control de los cambios, definitivamente si la vista se define desde el código de programación no nos tenemos que preocupar por saber cual es la ultima versión de esa vista.

  • No tenemos que manejar diferentes complementaciones para cada base de datos; si tuviéramos que hacerlo, basta con ajustar la generación del "Query" que describe la vista.

  • Fácil de implementar y comprensión para los programadores que le den soporte.

La forma de implementar es sencilla y semejante a la definición de las tablas o "entities".

Paso 1. Definición de la Vista.

Las @ViewEntity() son clases que permiten acceder a las vistas de nuestra base de datos.

// Definicion del query que invocara la vista. Ejemplo para POSTGRESQL
const query = `SELECT a.id, a.name, a.email from public.users a`

@ViewEntity({
    schema: 'public',
    name: 'vw_user_info',
    expression: query
})
export class UserInfoView {
    @ViewColumn( { name: 'id' })
    id: number;
    
    @ViewColumn( { name: 'name' })
    name: string;
    
    @ViewColumn( { name: 'email' })
    email: string;
}

Paso 2. Definición del Repositorio.

Paso 3. Utilización del repositorio en un servicio.

Última actualización