- Qu'est-ce que JPA ? En quoi est-ce différent de JDBC ?
L'éditeur de PHP Strawberry a sélectionné quelques questions d'entretien Java JPA, conçues pour tester votre maîtrise du framework de persistance. Ces questions couvrent les connaissances de base, les fonctionnalités avancées et les scénarios d'application pratiques de JPA, qui peuvent vous aider à mieux vous préparer aux entretiens et à démontrer vos capacités techniques. Les développeurs débutants et expérimentés peuvent en apprendre davantage sur JPA à partir de ces questions et améliorer leurs compétences dans le cadre de persistance.
- Dans JPA, qu'est-ce qu'une entité ?
Les entités sont des classes utilisées pour représenter des objets persistants dans JPA. Il peut être défini à l'aide de l'annotation @Entity et doit implémenter l'interface Serialisable. Les classes d'entités contiennent généralement des champs, des propriétés et des méthodes, qui correspondent aux colonnes et aux tables de la base de données, et des méthodes sont utilisées pour faire fonctionner ces champs et propriétés.
- Quelles sont les stratégies de persistance dans JPA ? Expliquez respectivement leurs avantages et leurs inconvénients.
JPA propose une variété de stratégies de persistance, notamment :
-
Géré : Les entités sont gérées via EntityManager, et le cycle de vie est contrôlé par JPA. L'avantage est que cela simplifie la gestion des entités, mais l'inconvénient est que cela augmente la surcharge de mémoire.
-
Détaché : L'entité est séparée du EntityManager et n'est pas sous la gestion de JPA. L'avantage est que cela réduit la surcharge de mémoire, mais l'inconvénient est que le cycle de vie de l'entité doit être géré manuellement.
-
Transient : L'entité ne participe à aucune opération de persistance. L'avantage est qu'elle ne sera pas persistante dans la base de données. L'inconvénient est qu'elle ne peut pas être gérée et interrogée par JPA.
-
Supprimé (Supprimé) : L'entité est marquée pour suppression et est supprimée de la base de données après la soumission de la transaction L'avantage est d'assurer la cohérence des données, mais l'inconvénient est que le cycle de vie de l'entité. doit être géré manuellement.
- Comment utiliser le langage de requête (JPQL) dans JPA pour interroger des données ?
JPQL (Java Persistence Query Language) est le langage utilisé pour interroger les données dans JPA. Il est similaire à SQL, mais la syntaxe est plus simple et plus proche du langage Java. Les requêtes JPQL peuvent être divisées en deux catégories :
-
Requête de sélection : Utilisée pour récupérer des données qui répondent à des conditions spécifiques, la syntaxe est : SELECT [select_clause] FROM [entity_name] [where_clause]
-
Requête de mise à jour : Utilisée pour mettre à jour ou supprimer des données, la syntaxe est : UPDATE [entity_name] SET [assignment_clause] [where_clause] ou DELETE FROM [entity_name] [where_clause]
- Comment implémenter la cartographie des relations dans JPA ?
JPA prend en charge plusieurs types de mappage de relations, notamment :
-
One-to-One (OneToOne) : Une entité peut établir une relation un-à-un avec une autre entité, qui peut être définie via l'annotation @OneToOne.
-
Un-à-plusieurs (OneToMany) : Une entité peut établir une relation un-à-plusieurs avec plusieurs entités, qui peuvent être définies via l'annotation @OneToMany.
-
ManyToOne : Plusieurs entités peuvent établir une relation plusieurs-à-un avec une seule entité, qui peut être définie via l'annotation @ManyToOne.
-
ManyToMany : Plusieurs entités peuvent établir une relation plusieurs-à-plusieurs avec plusieurs entités, qui peut être définie via l'annotation @ManyToMany.
- Comment optimiser les performances en JPA ?
JPA propose une variété de techniques d'optimisation des performances, notamment :
-
Utiliser la mise en cache : JPA peut améliorer les performances en mettant en cache les entités et les résultats des requêtes.
-
Utilisation d'index : Vous pouvez créer des index sur les tables de base de données pour améliorer les performances des requêtes.
-
Utiliser le traitement par lots : JPA prend en charge les opérations de traitement par lots, ce qui peut améliorer les performances des mises à jour ou des suppressions de données par lots.
-
Utilisez des requêtes asynchrones : JPA prend en charge les requêtes asynchrones, qui peuvent exécuter des requêtes en arrière-plan sans bloquer le thread principal.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!