TypeORM - Travailler avec Entity Manager

EntityManager est similaire à Repositoryet utilisé pour gérer les opérations de base de données telles que l'insertion, la mise à jour, la suppression et le chargement de données. Tandis queRepository gère une seule entité, EntityManager est commun à toutes les entités et capable d'effectuer des opérations sur toutes les entités.

API Entity Manager

Nous pouvons accéder EntityManager en utilisant getManager() méthode comme spécifié ci-dessous -

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

Apprenons la méthode la plus importante d'EntityManager dans ce chapitre.

connexion

connectionLa méthode retourne la connexion ORM de la base de données à des bases de données spécifiques. L'exemple de code est le suivant -

const connection = manager.connection;

QueryRunner

queryRunnerLa méthode retourne un objet d'exécution de requête personnalisé et il est utilisé pour les opérations de base de données par le gestionnaire d'entités. L'exemple de code est le suivant -

const queryRunner = manager.queryRunner;

transaction

Si plusieurs requêtes de base de données sont appelées, la transaction s'exécutera en une seule transaction de base de données. L'exemple de code pour obtenir la transaction est le suivant -

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

requete

queryLa méthode exécute des requêtes SQL. Requête d'insertion simple comme indiqué ci-dessous -

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

insérer

insertest utilisée pour insérer une nouvelle entité ou un nouveau tableau d'entités dans la base de données. L'exemple de code est le suivant -

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

mettre à jour

update est utilisé pour mettre à jour les enregistrements existants dans la base de données.

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

Cette requête fonctionne de manière similaire à la requête SQL ci-dessous,

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

effacer

la méthode de suppression supprimera l'enregistrement spécifié de la table,

await manager.delete(Student, 1);

Cela supprimera avec l'ID 1 du dossier étudiant.

enregistrer

saveest utilisé pour enregistrer l'entité donnée dans la base de données. L'entité étudiant simple peut être enregistrée comme indiqué ci-dessous -

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

Cela ajoutera un nouveau dossier d'étudiant dans la base de données. La méthode save insérera l'étudiant, si l'étudiant donné n'existe pas dans la base de données. Sinon, la sauvegarde mettra à jour le dossier étudiant existant dans la base de données.

retirer

removeest utilisé pour supprimer l'entité donnée de la base de données. L'entité étudiant simple peut être supprimée comme indiqué ci-dessous -

await manager.remove(stud);

compter

countLa méthode retournera le nombre d'enregistrements disponibles dans la table et vous pourrez l'utiliser à des fins de pagination. L'exemple de code est le suivant -

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

trouver

findméthode est utilisée à des fins de recherche. Il récupère tous les enregistrements de la base de données comme indiqué ci-dessous -

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

findOne

Semblable à findméthode, mais renvoie le premier enregistrement correspondant. L'exemple de code est le suivant -

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

clair

La méthode clear efface toutes les données de la table. L'exemple de code est le suivant -

await manager.clear(Student);