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