20 questions et réponses d'entrevue Hibernate les plus courantes [Pour les débutants et les expérimentés]

Publié: 2020-12-31

Pendant longtemps, Java a occupé l'une des premières places dans la liste des langages de programmation les plus populaires. Naturellement, étant un langage de programmation hautement prioritaire préféré par les développeurs du monde entier, Java est accompagné d'une vaste collection d'outils, de bibliothèques et de frameworks. Dans cet article, nous allons parler d'un framework Java populaire, Hibernate.

Quiconque a travaillé ou travaille avec Java connaît bien Hibernate et ses pouvoirs. Cependant, laissez-nous le décomposer pour ceux d'entre vous qui viennent de tomber sur ce nom - Hibernate.

Table des matières

Qu'est-ce que l'hibernation ?

Hibernate est un outil ORM (object-relational mapping) conçu exclusivement pour Java. en d'autres termes, il offre un cadre pour aider à mapper un modèle orienté objet sur une base de données relationnelle. Hibernate se concentre principalement sur le mappage des classes Java vers les tables de base de données et le mappage des types de données Java vers les types de données SQL .

Hibernate étend également les services de requête et de récupération de données. Il est écrit en Java et est basé sur JVM. Hibernate propose des implémentations de référence de l'API Java Persistence, ce qui en fait un choix fantastique pour ORM (Object Relational Mapping). Nous pouvons utiliser l'API de persistance Hibernate pour les opérations CRUD

À l'origine, Hibernate a été conçu pour servir d'alternative plus simple et meilleure à EJB2 (Enterprise Java Beans version 2). Aujourd'hui, Hibernate se vante d'être l'un des outils ORM les plus utilisés pour les applications Java.

Il est largement utilisé pour développer des applications d'entreprise basées sur Java pour les opérations de base de données. De plus, l'API Hibernate Persistence est excellente pour les opérations CRUD.

Maintenant que vous avez des connaissances de base sur Hibernate, apprenons à mieux connaître cet outil ORM avec ces questions de l'entretien X Hibernate !

Inscrivez-vous aux cours de développement de logiciels des meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Questions et réponses de l'entretien d'hibernation

1.Qu'est-ce que l'ORM ?

ORM (Object Relational Mapping) fait référence à une technique de mappage d'objets avec les données stockées dans une base de données. L'objectif d'ORM est de simplifier la création de données, l'accès aux données et la manipulation des données.

2.Qu'est-ce que JPA ?

Java Persistence API (JPA) est une spécification qui alloue des normes et des fonctionnalités aux outils ORM. Vous pouvez accéder aux classes et aux interfaces JPA à partir du package javax.persistence . Toutes les spécifications JPA sont définies à l'aide d'annotations dans le package javax.persistence. L'avantage d'utiliser les annotations JPA est qu'elles vous permettent d'écrire du code indépendant de l'implémentation.

3.Quelles sont les annotations JPA importantes utilisées pour le mappage Hibernate ?

Hibernate prend en charge les annotations JPA ainsi que de nombreuses autres annotations auxquelles vous pouvez accéder via le package org.hibernate.annotations. Voici sept des annotations JPA les plus importantes :

javax.persistence.Entity - Il est utilisé en combinaison avec des classes de modèle pour les déclarer en tant que beans entité.

javax.persistence.Table – Il est utilisé avec les beans entité pour définir le nom de table correspondant dans une base de données.

javax.persistence.Access – Il est utilisé pour spécifier le type d'accès, le champ ou la propriété. La valeur par défaut de cette annotation est champ.

javax.persistence.Id - Il définit la clé primaire dans le bean entité.

javax.persistence.EmbeddedId – Il est utilisé pour spécifier une clé primaire composite dans le bean entité.

javax.persistence.Column - Il spécifie le nom de la colonne dans la table de base de données.

javax.persistence.GeneratedValue – Il définit la stratégie nécessaire pour générer la clé primaire.

4.Définir HQL

HQL signifie Hibernate Query Language. C'est un langage de requête orienté objet, indépendant de la base de données.

5.Comment effectueriez-vous le mappage dans Hibernate ?

La fonctionnalité de mappages d'association d'Hibernate facilite le mappage en prenant en charge les quatre associations standard, identiques à celles d'un modèle de base de données relationnelle :

  • Associations individuelles
  • Associations un-à-plusieurs
  • Associations plusieurs-à-un
  • Associations plusieurs à plusieurs

Chacune de ces associations peut être mappée comme association unidirectionnelle ou bidirectionnelle.

6. Nommez les principales interfaces/composants d'Hibernate.

Hibernate a six interfaces principales : Configuration, SessionFactory, Session, Requête, Critères et Transaction.

7.Pouvez-vous créer une requête SQL dans Hibernate ?

Oui, vous pouvez créer des requêtes SQL dans Hibernate. Pour créer une requête SQL, vous devez utiliser la syntaxe suivante :

Session.createSQLQuery

8.Qu'est-ce que le fichier de configuration Hibernate ?

Le fichier de configuration Hibernate stocke les configurations spécifiques à la base de données. Il est utilisé pour initialiser l'interface SessionFactory. Ce fichier contient également d'autres informations pertinentes telles que les informations de dialecte qui permettent à Hibernate de connaître le type de base de données et les détails du fichier/classe de mappage.

9.Qu'est-ce que la classe persistante ?

Dans Hibernate, les classes dont les objets et les instances sont stockés dans des classes de base de données sont appelées classes persistantes.

10.Définir la session

L'interface Session se situe entre Hibernate et une couche d'application Java. Il est principalement utilisé pour effectuer des opérations de base de données. Session permet d'établir et de maintenir une connexion entre une application Hibernate et une base de données. Il propose différentes méthodes pour effectuer des opérations de création, de lecture, de mise à jour et de suppression d'objets persistants.

De plus, Session agit comme une usine de requête, de critères et de transaction, ce qui signifie qu'elle étend les méthodes d'usine pour renvoyer ces instances. Vous pouvez utiliser l'objet Session pour créer des critères et exécuter des requêtes HQL et des requêtes SQL natives.

11.Définissez SessionFactory.

Dans Hibernate, SessionFactory est la classe factory utilisée pour accéder aux objets Session. Il lit les paramètres de configuration d'Hibernate et se connecte à la base de données pour récupérer les objets Session. SessionFactory est essentiellement une fabrique de Session et fournit l'instance de Session.

Une fois la SessionFactory créée, son état interne est fixe, ce qui la rend immuable. L'état interne de la SessionFactory contient les métadonnées complètes du mappage objet/relationnel.

12. Faites la distinction entre le fichier de configuration Hibernate et le fichier de mappage Hibernate.

Le fichier de configuration Hibernate inclut des configurations spécifiques à la base de données et des informations sur le dialecte. Il est utilisé pour initialiser SessionFactory. Vous pouvez accéder aux informations d'identification de la base de données ou aux informations sur les ressources JNDI à partir du fichier XML de configuration d'Hibernate.

D'autre part, le fichier de mappage Hibernate est utilisé pour définir les mappages de colonnes de table de base de données et les champs de bean entité. Le fichier de mappage est au cœur de chaque application Hibernate. Il contient un mappage d'un nom de classe POJO à un nom de table et des noms de variable de classe POJO à des noms de colonne de table.

13. Que sont les POJO ?

POJO est un acronyme pour Plain Old Java Object. Essentiellement, les POJO sont des beans Java conçus avec des méthodes getter et setter standard pour des propriétés individuelles. L'avantage d'utiliser des POJO au lieu de classes Java est que vous pouvez écrire du code propre, précis et efficace.

14. Nommez les composants clés d'un objet de configuration Hibernate.

Un objet de configuration Hibernate a deux composants clés

  1. Connexion à la base de données qui est gérée par un ou plusieurs fichiers de configuration.
  2. Configuration du mappage de classe qui est utilisée pour établir la connexion entre les classes Java et les tables de base de données.

15.Qu'est-ce que le dialecte Hibernate ?

Hibernate Dialect spécifie le type de base de données que vous souhaitez utiliser. Cela permet à Hibernate de connaître ces informations à l'avance pour générer les instructions SQL appropriées qui conviendront le mieux à votre type de base de données préféré/spécifié.

16.Définissez "Mise en cache Hibernate".

La mise en cache Hibernate est le processus d'interrogation des données pour améliorer la vitesse et les performances d'une application Hibernate. L'objectif est de minimiser le nombre de requêtes de base de données, ce qui se traduit par un temps de traitement réduit.

EHCache est la fonctionnalité de cache par défaut d'Hibernate.

17.Qu'est-ce que le cache de premier niveau et de second niveau ?

Dans Hibernate, le cache de premier niveau fait référence au cache de session. C'est le cache obligatoire par lequel toutes les requêtes doivent passer. Le deuxième cache est un cache facultatif qui met en cache des objets à travers les sessions.

Vous pouvez configurer un cache de second niveau basé sur une pré-collection et par classe. En règle générale, le cache de premier niveau doit être consulté avant toute tentative de localisation d'un objet dans le cache de second niveau.

18.Expliquez les différentes étapes d'un bean objet/entité.

Une instance de bean objet/entité existe généralement dans l'une des trois phases suivantes :

  • Transitoire - Dans cette phase, un objet ne persiste jamais ou ne s'associe à aucune session. Vous pouvez convertir des instances transitoires en persistantes en utilisant les fonctions save(), persist() ou saveOrUpdate(). Pour rétablir une instance persistante en transitoire, vous pouvez utiliser la commande delete().
  • Persistant – Un objet atteint l'état persistant lorsqu'il s'associe à une session unique. Toutes les instances renvoyées par les fonctions get() ou load() sont dans l'état persistant.
  • Détaché – Lorsqu'un objet persistant ne s'associe à aucune session, il atteint l'état détaché. Vous pouvez convertir une instance détachée en instance persistante via les fonctions update(), saveOrUpdate(), lock() ou replica().

19.Quel est le but de Dirty Checking dans Hibernate ?

La fonction de vérification automatique des modifications d'Hibernate appelle automatiquement l'instruction de mise à jour sur les objets modifiés dans une transaction, aidant ainsi les développeurs à éviter les actions d'écriture chronophages.

La vérification sale ne modifie/met à jour que les champs qui nécessitent une action tout en gardant les autres champs intacts. Dans l'ensemble, cela réduit le temps d'écriture de la base de données.

20. Définissez "Gestion des transactions".

La gestion des transactions est une fonctionnalité du framework Spring. Il s'agit essentiellement du processus de gestion d'un ensemble de commandes/instructions. Dans Hibernate, l'interface de transaction effectue la gestion des transactions en maintenant l'abstraction de l'implémentation de la transaction (JTA, JDBC). Vous pouvez initier une transaction en appelant la méthode session.beginTransaction() .

Lisez aussi: Questions et réponses d'entrevue Java

Conclusion

Pour conclure, même si ces vingt questions d'entretien Hibernate effleurent la surface du sujet en question, nous espérons que cela vous aidera à briser la glace avec Hibernate et à creuser plus profondément !

Nous vous souhaitons tout le meilleur pour commencer votre carrière en Java !

Décrochez le job de vos rêves

Postulez maintenant pour une maîtrise en génie logiciel