3
votes

Comment CrudRepository sait-il quelle table obtenir des données?

J'ai construit une application avec Angular, SpringBoot et MySQL Database. Il utilise CrudRepository et je ne le comprends pas (tout fonctionne bien). Comment les contrôleurs / référentiels savent-ils de quelle table obtenir les données? Je veux dire, je ne spécifie pas le nom de la table. Quelqu'un peut-il m'expliquer comment cela fonctionne?


0 commentaires

3 Réponses :


4
votes

Lorsque vous étendez CrudRepository , vous définissez son type générique. Dans Ici, vous indiquez à partir de quelle classe Entity le référentiel récupérera les données. Et les classes Entity dans JPA sont utilisées pour représenter les Tables . Voilà comment il sait d'où trouver les données. par exemple:

public interface UserRepository extends CrudRepository<User, Long>  {
}

Dans le code ci-dessus, j'ai spécifié le type générique comme étant User , également User est ma classe Entity qui représente Table des utilisateurs dans ma base de données . Donc, ce référentiel traitera de la table des utilisateurs .


0 commentaires

3
votes

Dans l'application JPA de Spring Boot Data, tout modèle est annoté avec @Entity ou avec @Table (name = "User") . Dans le cas de l'ancien, le nom de la table par défaut est le même que le nom de l'entité.

De plus, lorsque vous créez un référentiel comme: interface publique UserRepository étend CrudRepository l'implémentation par défaut de Entity c'est-à-dire que l'utilisateur est appelé à effectuer toutes les opérations de manière générique.


0 commentaires

0
votes

J'ai trouvé l'explication suivante utile car elle passe par toutes les combinaisons possibles de @Entity et @Table et répertorie la requête correspondante.
https://walkingtechie.blogspot.com/2019/ 06 / difference-between-entity-and-table.html


0 commentaires