TypeORM - Praca z Entity Manager

EntityManager jest podobne do Repositoryi służy do zarządzania operacjami bazy danych, takimi jak wstawianie, aktualizowanie, usuwanie i ładowanie danych. PodczasRepository obsługuje pojedynczy podmiot, EntityManager jest wspólny dla wszystkich podmiotów i może wykonywać operacje na wszystkich podmiotach.

Entity Manager API

Mamy dostęp EntityManager za pomocą getManager() metoda określona poniżej -

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

W tym rozdziale poznajmy najważniejszą metodę EntityManagera.

połączenie

connectionmetoda zwraca połączenie bazy danych ORM z określonymi bazami danych. Przykładowy kod jest następujący -

const connection = manager.connection;

QueryRunner

queryRunnermetoda zwraca niestandardowy obiekt modułu uruchamiającego zapytania i jest używany do operacji na bazie danych przez menedżera encji. Przykładowy kod jest następujący -

const queryRunner = manager.queryRunner;

transakcja

Jeśli wywoływanych jest wiele żądań bazy danych, transakcja zostanie wykonana w jednej transakcji bazy danych. Przykładowy kod do pobrania transakcji jest następujący -

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

pytanie

querymetoda wykonuje zapytania sql. Proste zapytanie o wstawianie, jak pokazano poniżej -

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

wstawić

insertsłuży do wstawiania nowej jednostki lub tablicy jednostek do bazy danych. Przykładowy kod jest następujący -

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

aktualizacja

update służy do aktualizacji istniejących rekordów w bazie danych.

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

To zapytanie działa podobnie do poniższego zapytania SQL,

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

usunąć

metoda delete usunie określony rekord z tabeli,

await manager.delete(Student, 1);

Spowoduje to usunięcie rekordu ucznia o identyfikatorze 1.

zapisać

savesłuży do zapisania danej jednostki w bazie danych. Prostą jednostkę Ucznia można zapisać, jak pokazano poniżej -

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

Spowoduje to dodanie nowego rekordu ucznia do bazy danych. save wstawi ucznia, jeśli nie ma go w bazie danych. W przeciwnym razie zapisz zaktualizuje istniejący rekord studenta w bazie danych.

usunąć

removesłuży do usunięcia danego podmiotu z bazy danych. Prostą jednostkę Ucznia można usunąć, jak pokazano poniżej -

await manager.remove(stud);

liczyć

countmetoda zwróci liczbę rekordów dostępnych w tabeli i możesz użyć jej do paginacji. Przykładowy kod jest następujący -

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

odnaleźć

findMetoda służy do wyszukiwania. Pobiera cały rekord z bazy danych, jak pokazano poniżej -

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

findOne

Podobny do find, ale zwraca pierwszy dopasowany rekord. Przykładowy kod jest następujący -

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

jasny

clear metoda usuwa wszystkie dane z tabeli. Przykładowy kod jest następujący -

await manager.clear(Student);