TypeORM - Trabalhando com o Entity Manager

EntityManager é similar a Repositorye usado para gerenciar operações de banco de dados, como inserir, atualizar, excluir e carregar dados. EnquantoRepository lida com uma única entidade, EntityManager é comum a todas as entidades e pode fazer operações em todas as entidades.

API Entity Manager

Podemos acessar EntityManager usando getManager() método conforme especificado abaixo -

import { getManager } from "typeorm"; const entityManager = getManager();

Vamos aprender o método mais importante do EntityManager neste capítulo.

conexão

connectionmétodo retorna a conexão ORM do banco de dados para bancos de dados específicos. O código de amostra é o seguinte -

const connection = manager.connection;

QueryRunner

queryRunnermétodo retorna o objeto executor de consulta personalizado e é usado para operações de banco de dados pelo gerenciador de entidade. O código de amostra é o seguinte -

const queryRunner = manager.queryRunner;

transação

Se várias solicitações de banco de dados forem chamadas, a transação será executada em uma única transação de banco de dados. O código de amostra para obter a transação é o seguinte -

await manager.transaction(async manager => { 
});

inquerir

querymétodo executa consultas sql. Consulta de inserção simples conforme mostrado abaixo -

const qur = await manager.query(`insert into student(name,age) values('stud2',13)`);

inserir

insertmétodo é usado para inserir uma nova entidade ou matriz de entidades no banco de dados. O código de amostra é o seguinte -

await manager.insert(Student, { 
   Name: "Student3", 
   Age: 14 
});

atualizar

update é usado para atualizar os registros existentes no banco de dados.

await manager.update(User, 1, { Name: "Adam" });

Esta consulta funciona de forma semelhante à consulta SQL abaixo,

UPDATE student SET Name = "Adam" WHERE id = 1

excluir

método delete irá excluir o registro especificado da tabela,

await manager.delete(Student, 1);

Isso excluirá com a id 1 do registro do aluno.

Salve 

saveé usado para salvar a entidade fornecida no banco de dados. A entidade simples do aluno pode ser salva conforme mostrado abaixo -

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); 
}

Isso adicionará um novo registro do aluno ao banco de dados. O método save irá inserir o aluno, se o aluno em questão não existir no banco de dados. Caso contrário, salvar atualizará o registro do aluno existente no banco de dados.

retirar

removeé usado para excluir a entidade fornecida do banco de dados. A entidade simples do aluno pode ser excluída conforme mostrado abaixo -

await manager.remove(stud);

contagem

countmétodo irá retornar o número de registros disponíveis na tabela e você pode usá-lo para fins de paginação. O código de amostra é o seguinte -

const cnt = await manager.count(Student, { age: 12 });

encontrar

findmétodo é usado para fins de pesquisa. Ele busca todos os registros do banco de dados como mostrado abaixo -

console.log("Loading users from the database..."); 
const students = await connection.manager.find(Student); console.log("Loaded users: ", students);

findOne

Igual a findmétodo, mas retorna o primeiro registro correspondente. O código de amostra é o seguinte -

const stud = await manager.findOne(Student, 1);

Claro

método claro limpa todos os dados da tabela. O código de amostra é o seguinte -

await manager.clear(Student);