TypeORM - Utilisation du référentiel

Le référentiel est spécifique à une entité. En d'autres termes, chaque entité aura son propre référentiel intégré et il sera accessible en utilisant la méthode getRepository () de l'objet de connexion comme spécifié ci-dessous -

const studRepository = manager.getRepository(Student);

Une fois que l'objet de référentiel étudiant est créé, il peut être utilisé pour effectuer toutes les opérations de base de données de l'objet étudiant.

Types de référentiel

Repositoryest classé en quatre catégories. Ils sont les suivants -

Dépôt

Référentiel par défaut d'une entité et il est accessible en utilisant getRepository() méthode comme spécifié ci-dessous -

const studRepository = manager.getRepository(Student);

Maintenant, studRepository peut être utilisé pour interroger la table des étudiants

TreeRepository

Utilisé pour les entités de structure arborescente et il est accessible en utilisant getTreeRepository() méthode comme spécifié ci-dessous -

const studcaRepository = manager.getTreeRepository(Student);

MongoRepository

Utilisé dans les entités d'opération mongoDB et il est accessible en utilisant getMongoRepository() méthode comme spécifié ci-dessous -

const detailsRepository = manager.getMongoRepository(Details);

Référentiel personnalisé

Utilisé pour personnaliser le référentiel et il est accessible en utilisant getCustomRepository() méthode comme spécifié ci-dessous,

const myUserRepository = manager.getCustomRepository(UserRepository);

API de référentiel

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

directeur

Nous pouvons accéder EntityManager en utilisant la méthode du gestionnaire comme spécifié ci-dessous -

const manager = repository.manager;

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 référentiel. L'exemple de code est le suivant -

const queryRunner = repository.queryRunner;

métadonnées

metadatarenvoie les métadonnées du référentiel. L'exemple de code est le suivant -

const metadata = repository.metadata;

requete

queryLa méthode exécute des requêtes SQL. Requête de sélection simple comme indiqué ci-dessous -

const qur = await repository.query(`select * from students`);

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 repository.insert({ 
   Name: "Student3", 
   Age: 14 
});

La requête ci-dessus équivaut à,

insert into student(Name,age) values("Student3",14)

mettre à jour

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

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

Cette requête fonctionne de manière similaire à celle mentionnée ci-dessous -

update student SET Name = "Adam" where id = 1

effacer

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

await repository.delete(Student, 1);

Cela supprimera l'élève avec son identifiant 1 du studenttable. C'est équivalent à,

delete from student where id=1;

Si vous souhaitez supprimer par nom, utilisez la requête ci-dessous,

await repository.delete({ Name: "Student1" });

Cette requête supprimera tous les étudiants ayant leur nom, Student1

** softDelete et restaurer **

Il est utilisé pour supprimer les données et vous pouvez restaurer l'enregistrement en fonction de l'identifiant de l'étudiant. L'exemple de code est le suivant -

await repository.softDelete(1);

Vous pouvez restaurer le dossier étudiant en utilisant la commande ci-dessous -

await repository.restore(1);

Une autre option pour supprimer et restaurer consiste à utiliser softRemove et recoverméthodes. L'exemple de code est le suivant -

//find the entities const enty = await repository.find(); 

//soft removed entity const entySoftRemove = await repository.softRemove(enty);

Et, vous pouvez les récupérer en utilisant la méthode de récupération comme spécifié ci-dessous,

await repository.recover(entySoftRemove);

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 repository.save(stud);

Cela ajoutera un nouveau dossier d'étudiant 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 repository.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 repository.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 -

const result = await repository.find({ id: 1 });

findOne

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

const result = await repository.findOne({ id: 1 });

clair

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

await repository.clear();