TypeORM - Lavorare con Entity Manager

EntityManager è simile a Repositorye utilizzato per gestire le operazioni del database come inserire, aggiornare, eliminare e caricare i dati. MentreRepository gestisce una singola entità, EntityManager è comune a tutte le entità e in grado di eseguire operazioni su tutte le entità.

API Entity Manager

Possiamo accedere EntityManager utilizzando getManager() metodo come specificato di seguito -

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

Impariamo il metodo più importante di EntityManager in questo capitolo.

connessione

connectionrestituisce la connessione ORM del database a database specifici. Il codice di esempio è il seguente:

const connection = manager.connection;

QueryRunner

queryRunnerrestituisce un oggetto runner di query personalizzato ed è utilizzato per le operazioni di database da entity manager. Il codice di esempio è il seguente:

const queryRunner = manager.queryRunner;

transazione

Se vengono chiamate più richieste di database, la transazione verrà eseguita in una singola transazione di database. Il codice di esempio per ottenere la transazione è il seguente:

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

query

querymetodo esegue query sql. Semplice query di inserimento come mostrato di seguito -

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

inserire

insertviene utilizzato per inserire una nuova entità o array di entità nel database. Il codice di esempio è il seguente:

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

aggiornare

update viene utilizzato per aggiornare i record esistenti nel database.

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

Questa query funziona in modo simile alla query SQL seguente,

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

Elimina

il metodo delete eliminerà il record specificato dalla tabella,

await manager.delete(Student, 1);

Questo verrà eliminato con l'ID 1 del record dello studente.

Salva

saveviene utilizzato per salvare l'entità data nel database. L'entità Studente semplice può essere salvata come mostrato di seguito -

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

Ciò aggiungerà il nuovo record dello studente nel database. Il metodo save inserirà lo studente, se lo studente specificato non esiste nel database. In caso contrario, il salvataggio aggiornerà il record dello studente esistente nel database.

rimuovere

removeviene utilizzato per eliminare l'entità specificata dal database. L'entità Studente semplice può essere eliminata come mostrato di seguito:

await manager.remove(stud);

contare

countrestituirà il numero di record disponibili nella tabella ed è possibile utilizzarlo per scopi di impaginazione. Il codice di esempio è il seguente:

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

trova

findviene utilizzato per scopi di ricerca. Recupera tutto il record dal database come mostrato di seguito -

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

trova uno

Simile a findmetodo, ma restituisce il primo record corrispondente. Il codice di esempio è il seguente:

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

chiaro

Il metodo clear cancella tutti i dati dalla tabella. Il codice di esempio è il seguente:

await manager.clear(Student);