TypeORM - Trabajar con Entity Manager
EntityManager es parecido a Repositoryy se utiliza para administrar las operaciones de la base de datos, como insertar, actualizar, eliminar y cargar datos. MientrasRepository maneja una sola entidad, EntityManager es común a todas las entidades y puede realizar operaciones en todas las entidades.
API de Entity Manager
Podemos acceder EntityManager utilizando getManager() método como se especifica a continuación -
import { getManager } from "typeorm"; const entityManager = getManager();
Aprendamos el método más importante de EntityManager en este capítulo.
conexión
connectionEl método devuelve la conexión ORM de la base de datos a bases de datos específicas. El código de muestra es el siguiente:
const connection = manager.connection;
QueryRunner
queryRunnerEl método devuelve un objeto de ejecución de consultas personalizado y el administrador de la entidad lo utiliza para las operaciones de la base de datos. El código de muestra es el siguiente:
const queryRunner = manager.queryRunner;
transacción
Si se llaman varias solicitudes de base de datos, la transacción se ejecutará en una sola transacción de base de datos. El código de muestra para obtener la transacción es el siguiente:
await manager.transaction(async manager => {
});
consulta
queryEl método ejecuta consultas SQL. Consulta de inserción simple como se muestra a continuación:
const qur = await manager.query(`insert into student(name,age) values('stud2',13)`);
insertar
insertEl método se utiliza para insertar una nueva entidad o matriz de entidades en la base de datos. El código de muestra es el siguiente:
await manager.insert(Student, {
Name: "Student3",
Age: 14
});
actualizar
update se utiliza para actualizar los registros existentes en la base de datos.
await manager.update(User, 1, { Name: "Adam" });
Esta consulta funciona de manera similar a la siguiente consulta SQL,
UPDATE student SET Name = "Adam" WHERE id = 1
Eliminar
El método de eliminación eliminará el registro especificado de la tabla,
await manager.delete(Student, 1);
Esto eliminará con la identificación 1 del registro del estudiante.
salvar
savese utiliza para guardar la entidad dada en la base de datos. La entidad de estudiante simple se puede guardar como se muestra a continuación:
import {Student} from "./entity/Student";
createConnection().then(async connection => {
console.log("Inserting a new record into the student database...");
const stud = new Student(); stud.Name = "student1";
stud.age = 12;
await connection.manager.save(stud);
}
Esto agregará un nuevo registro de estudiante a la base de datos. El método save insertará al estudiante, si el estudiante dado no existe en la base de datos. De lo contrario, guardar actualizará el registro del estudiante existente en la base de datos.
eliminar
removese utiliza para eliminar la entidad dada de la base de datos. La entidad de estudiante simple se puede eliminar como se muestra a continuación:
await manager.remove(stud);
contar
countEl método devolverá el número de registros disponibles en la tabla y puede usarlo con fines de paginación. El código de muestra es el siguiente:
const cnt = await manager.count(Student, { age: 12 });
encontrar
findEl método se utiliza con fines de búsqueda. Obtiene todo el registro de la base de datos como se muestra a continuación:
console.log("Loading users from the database...");
const students = await connection.manager.find(Student); console.log("Loaded users: ", students);
Encuentra uno
Similar a findmétodo, pero devuelve el primer registro coincidente. El código de muestra es el siguiente:
const stud = await manager.findOne(Student, 1);
claro
El método clear borra todos los datos de la tabla. El código de muestra es el siguiente:
await manager.clear(Student);