Top 50 des questions d'entretien avec Hibernate (2024)

Voici les questions et réponses d'entretien d'Hibernate pour les candidats débutants et expérimentés pour obtenir l'emploi de leurs rêves.


1. Qu'est-ce qu'Hibernate ?

Hibernate est un framework Java populaire qui permet un mappage objet-relationnel efficace à l'aide de fichiers de configuration au format XML. Une fois les objets Java mappés aux tables de base de données, la base de données est utilisée et gérée à l'aide d'objets Java sans écrire de requêtes de base de données complexes.

Téléchargement PDF gratuit : Questions et réponses pour l'entretien Hibernate


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

ORM (Object Relational Mapping) est le concept fondamental du framework Hibernate qui mappe les tables de base de données avec des objets Java et fournit ensuite divers APIpour effectuer différents types d'opérations sur les tables de données.


3. Comment les propriétés d'une classe sont-elles mappées aux colonnes d'une table de base de données dans Hibernate ?

Les correspondances entre les propriétés de classe et les colonnes de table sont spécifiées dans XML fichier comme dans l'exemple ci-dessous :


4. Quelle est l'utilisation de l'interface de configuration en veille prolongée ?

L'interface de configuration du framework hibernate est utilisée pour configurer hibernate. Il est également utilisé pour bootstrap hiberner. Les documents de mappage d'hibernate sont localisés à l'aide de cette interface.


5. Comment pouvons-nous utiliser de nouvelles interfaces personnalisées pour améliorer les fonctionnalités des interfaces intégrées de mise en veille prolongée ?

Nous pouvons utiliser des interfaces d'extension afin d'ajouter toute fonctionnalité requise qui n'est pas prise en charge par les interfaces intégrées.

Questions d'entretien chez Hibernate
Questions d'entretien chez Hibernate

6. Tous les fichiers de mappage d'hibernate doivent-ils avoir l'extension .hbm.xml pour fonctionner correctement ?

Non, avoir l'extension .hbm.xml est une convention et non une exigence pour les noms de fichiers de mappage de mise en veille prolongée. Nous pouvons avoir n’importe quelle extension pour ces fichiers de mappage.


7. Comment créer une fabrique de sessions en veille prolongée ?

questions d'entretien d'hibernation
hiberner

Pour créer une fabrique de sessions en veille prolongée, un objet de configuration est d'abord créé qui fait référence au chemin du fichier de configuration, puis pour cette configuration, une fabrique de sessions est créée comme indiqué dans l'exemple ci-dessous :

Configuration config = new Configuration();
config.addResource("myinstance/configuration.hbm.xml");
config.setProperties( System.getProperties() );
SessionFactory sessions = config.buildSessionFactory();

8. Que sont les POJO et quelle est leur signification ?

Les POJO (Plain Old Java Objects) sont des beans Java avec des méthodes getter et setter appropriées pour chaque propriété.
L'utilisation de POJO au lieu de simples classes Java permet d'obtenir un code efficace et bien construit.


9. Qu'est-ce que HQL ?

HQL est le langage de requête utilisé dans Hibernate qui est une extension de SQL. HQL est un langage de requête très efficace, simple et flexible permettant d'effectuer différents types d'opérations sur une base de données relationnelle sans écrire de requêtes de base de données complexes.


10. Comment pouvons-nous invoquer des procédures stockées en veille prolongée ?

En veille prolongée, nous pouvons exécuter des procédures stockées en utilisant le code comme ci-dessous :


11. Qu'est-ce que l'API de critères ?

Criteria est une API de mise en veille prolongée simple mais puissante qui est utilisée pour récupérer des entités via la composition d'objets de critères.


12. Quels sont les avantages de l'utilisation du modèle Hibernate ?

Voici quelques avantages clés de l’utilisation du modèle Hibernate :
un. La clôture de la session est automatisée.
b. L'interaction avec la session de mise en veille prolongée est simplifiée.
c. La gestion des exceptions est automatisée.


13. Comment pouvons-nous voir le SQL généré par la mise en veille prolongée sur la console ?

Nous devons ajouter ce qui suit dans le fichier de configuration d'hibernation pour permettre l'affichage de SQL sur la console à des fins de débogage :


14. Quels sont les deux types de collections en veille prolongée ?

Voici les deux types de collections en veille prolongée :

  1. Collection triée
  2. Collecte des commandes


15. Quelle est la différence entre les méthodes session.save() et session.saveOrUpdate() en hibernation ?

Méthode Sessionsave() enregistre un enregistrement uniquement s'il est unique par rapport à sa clé primaire et ne parviendra pas à l'insérer si la clé primaire existe déjà dans la table.
Méthode saveOrUpdate() insère un nouvel enregistrement si la clé primaire est unique et mettra à jour un enregistrement existant si la clé primaire existe déjà dans la table.


16. Quels sont les avantages de l'hibernation JDBC?

  • Hibernate peut être utilisé de manière transparente avec n'importe quel type de base de données car il est indépendant de la base de données, tandis que dans le cas de JDBC, le développeur doit écrire des requêtes spécifiques à la base de données.
  • En utilisant Hibernate, le développeur n'a pas besoin d'être un expert en écriture de requêtes complexes car HQL simplifie le processus d'écriture de requêtes tandis que dans le cas de JDBC, son travail de développeur consiste à écrire et à régler les requêtes.
  • En cas de mise en veille prolongée, il n'est pas nécessaire de créer des pools de connexions car la mise en veille prolongée gère automatiquement toute la gestion des connexions tandis qu'en cas de JDBC, des pools de connexions doivent être créés.

17. Comment pouvons-nous obtenir des statistiques d'hibernation ?

Nous pouvons obtenir des statistiques de mise en veille prolongée en utilisant la méthode getStatistics() de la classe SessionFactory comme indiqué ci-dessous :

SessionFactory.getStatistics()

18. Qu'est-ce que l'état d'instance transitoire dans Hibernate ?

Si une instance n’est associée à aucun contexte persistant et qu’elle n’a jamais été associée à aucun contexte persistant, on dit alors qu’elle est dans un état transitoire.


19. Comment pouvons-nous réduire les temps d’action d’écriture de la base de données dans Hibernate ?

Hibernate fournit une fonctionnalité de vérification sale qui peut être utilisée pour réduire les temps d'écriture de la base de données. La fonction de vérification sale de la mise en veille prolongée ne met à jour que les champs qui nécessitent une modification tout en gardant les autres inchangés.


20. À quoi servent les interfaces de rappel en veille prolongée ?

Les interfaces de rappel d'hibernate sont utiles pour recevoir des notifications d'événements provenant d'objets. Par exemple, lorsqu'un objet est chargé ou supprimé, un événement est généré et une notification est envoyée à l'aide d'interfaces de rappel.


21. Quand une instance passe à l'état détaché en hibernation ?

Lorsqu'une instance a été précédemment associée à un contexte persistant (par exemple une table) et n'est plus associée, elle est appelée dans un état détaché.


22. Quels sont les quatre niveaux ORM en veille prolongée ?

Voici les quatre niveaux ORM en veille prolongée :

  • Relationnel pur
  • Mappage d'objets légers
  • Mappage d'objets moyens
  • Mappage d'objet complet

23. Qu'est-ce que la gestion des transactions en veille prolongée ? Comment ça fonctionne?

La gestion des transactions est le processus de gestion d'un ensemble d'instructions ou de commandes. En hibernation ; la gestion des transactions se fait par l'interface de transaction comme indiqué dans le code ci-dessous :

Session s = null;
Transaction tr = null;
try {
s = sessionFactory.openSession();
tr = s.beginTransaction();
doTheAction(s);
tr.commit();
} catch (RuntimeException exc) {
tr.rollback();
} finally {
s.close();
}

24. Quelles sont les deux méthodes de configuration de la mise en veille prolongée ?

Nous pouvons utiliser l’une des deux méthodes suivantes de configuration de la mise en veille prolongée :

  1. Configuration basée sur XML (en utilisant le fichier hibernate.cfg.xml)
  2. Configuration programmatique (utilisation de la logique de code)

25. Quel est le service de cache par défaut de la mise en veille prolongée ?

Hibernate prend en charge plusieurs services de cache comme EHCache, OSCache, SWARMCache et TreeCache et le service de cache par défaut d'Hibernate est EHCache.


26. Quelles sont les deux associations de mappage utilisées en veille prolongée ?

En hibernation ; nous avons deux types d'associations de mappage entre entités :

  1. Association individuelle
  2. Association plusieurs-à-plusieurs

27. À quoi sert l'API Hibernate QBC ?

L'API Hibernate Query By Criteria (QBC) est utilisée pour créer des requêtes en manipulant des objets de critères au moment de l'exécution.


28. De combien de manières les objets peuvent-ils être récupérés à partir de la base de données en veille prolongée ?

Hibernate propose quatre manières suivantes pour récupérer des objets de la base de données :

  • Utiliser HQL
  • Utilisation de l'identifiant
  • Utilisation de l'API de critères
  • Utilisation du SQL standard

29. Comment la clé primaire est-elle créée en utilisant la mise en veille prolongée ?

La clé primaire de la base de données est spécifiée dans le fichier de configuration hbm.xml. Le générateur peut également être utilisé pour spécifier comment la clé primaire est créée dans la base de données.
Dans l'exemple ci-dessous, deptId agit comme clé primaire :


30. Comment pouvons-nous rattacher des objets détachés dans Hibernate ?

Les objets qui ont été détachés et qui ne sont plus associés à des entités persistantes peuvent être rattachés en appelant la méthode session.merge() de la classe de session.


31. Quelles sont les différentes manières de désactiver le cache de deuxième niveau de mise en veille prolongée ?

Le cache de deuxième niveau d'Hibernate peut être désactivé de l'une des manières suivantes :

  • En définissant use_second_level_cache sur false.
  • En utilisant CACHEMODE.IGNORE
  • Utilisation du fournisseur de cache comme org.hibernate.cache.NoCacheProvider

32. Que sont les métadonnées ORM ?

Tout le mappage entre les classes et les tables, les propriétés et les colonnes, les types Java et les types SQL, etc. est défini dans les métadonnées ORM.


33. Quelle est la fabrique de transactions par défaut en hibernation ?

Avec Hibernate 3.2, la fabrique de transactions par défaut est JDBCTransactionFactory.


34. Quel est le rôle de JMX en veille prolongée ?

Les applications et composants Java sont gérés en veille prolongée par une API standard appelée API JMX. JMX fournit des outils pour le développement de solutions Web distribuées efficaces et robustes.


35. Comment pouvons-nous lier la fabrique de sessions hibernate à JNDI ?

La fabrique de sessions Hibernate peut être liée à JNDI en apportant des modifications de configuration dans le fichier hibernate.cfg.


36. De combien de manières les objets peuvent-ils être identifiés dans Hibernate ?

L'identification des objets peut être effectuée en veille prolongée de trois manières :

  • Utilisation de l'identité d'objet : utilisation de l'opérateur ==.
  • Utilisation de l'égalité d'objet : utilisation de la méthode equals().
  • Utilisation de l'identité de la base de données : les objets de la base de données relationnelle peuvent être identifiés s'ils représentent la même ligne.

37. Quelles sont les différentes stratégies de récupération en cas d'hibernation ?

Les stratégies de récupération suivantes sont disponibles en veille prolongée :

  1. Rejoindre la récupération
  2. Récupération par lots
  3. Sélectionnez Récupération
  4. Sous-sélectionner la récupération

38. Comment le mappage des objets Java avec les tables de base de données est-il effectué ?

Pour mapper des objets Java avec des tables de base de données, nous devons avoir les noms de propriétés des beans Java identiques aux noms de colonnes d'une table de base de données. Le mappage est ensuite fourni dans le fichier hbm.xml comme indiqué ci-dessous :


39. Quelles sont les propriétés dérivées en hibernation ?

Les propriétés dérivées sont les propriétés qui ne sont mappées à aucune colonne d'une table de base de données. Ces propriétés sont calculées au moment de l'exécution par évaluation de toutes les expressions.


40. Qu'entend-on par requête SQL nommée en veille prolongée et comment est-elle utilisée ?

Les requêtes SQL nommées sont les requêtes définies dans le fichier de mappage et appelées selon les besoins n'importe où.
Par exemple, nous pouvons écrire une requête SQL dans notre fichier de mappage XML comme suit :

Cette requête peut alors être appelée comme suit :

List students = session.getNamedQuery("studentdetails")
.setString("TomBrady", name)
.setMaxResults(50)
.list();

41. Quelle est la différence entre les méthodes load() et get() en hibernation ?

Les méthodes Load() génèrent une exception si les enregistrements requis ne sont pas trouvés dans la base de données, tandis que la méthode get() renvoie null lorsque les enregistrements correspondant à l'identifiant ne sont pas trouvés dans la base de données.
Donc, idéalement, nous devrions utiliser la méthode Load() uniquement lorsque nous sommes sûrs de l’existence d’enregistrements par rapport à un identifiant.


42. À quoi sert la propriété version en veille prolongée ?

La propriété Version est utilisée en hibernation pour savoir si un objet est dans un état transitoire ou dans un état détaché.


43. Qu'est-ce que la programmation orientée attributs ?

Dans la programmation orientée attribut, un développeur peut ajouter des métadonnées (attributs) dans le code source Java pour ajouter plus de signification au code. Pour Java (mise en veille prolongée), la programmation orientée attributs est activée par un moteur appelé XDoclet.


44. À quoi sert session.lock() en veille prolongée ?

La méthode session.lock() de la classe session est utilisée pour rattacher un objet qui a été détaché précédemment. Cette méthode de rattachement ne vérifie aucune synchronisation des données dans la base de données lors de la rattachement de l'objet et peut donc entraîner un manque de synchronisation des données.


45. La mise en veille prolongée prend-elle en charge le polymorphisme ?

Oui, la mise en veille prolongée prend entièrement en charge le polymorphisme. Les requêtes de polymorphisme et les associations de polymorphisme sont prises en charge dans toutes les stratégies de cartographie d'hibernation.


46. ​​Quels sont les trois modèles d'héritage d'hibernation ?

Hibernate propose trois modèles d'héritage :

  1. Tableaux par classe de béton
  2. Tableau par hiérarchie de classe
  3. Tableau par sous-classe

47. Comment pouvons-nous cartographier les classes comme étant immuables ?

Si nous ne voulons pas qu'une application mette à jour ou supprime les objets d'une classe en veille prolongée, nous pouvons rendre la classe immuable en définissant mutable=false


48. Qu'est-ce que le flux d'hibernation général utilisant RDBMS ?

Le flux d'hibernation général impliquant RDBMS est le suivant :

  • Chargez le fichier de configuration et créez un objet de classe de configuration.
  • À l’aide de l’objet de configuration, créez l’objet sessionFactory.
  • Depuis sessionFactory, obtenez une session.
  • Créez une requête HQL.
  • Exécutez la requête HQL et obtenez les résultats. Les résultats seront sous forme de liste.

49. Qu'est-ce que le mappage d'objets lumineux ?

Le Light Object Mapping est l'un des niveaux de qualité ORM dans lequel toutes les entités sont représentées sous forme de classes et mappées manuellement.


50. Quelle est la différence entre les associations gérées et les associations en veille prolongée ?

Les associations gérées concernent la persistance de la gestion des conteneurs et sont bidirectionnelles tandis que les associations de mise en veille prolongée sont unidirectionnelles.


Ces questions d'entretien vous aideront également dans votre soutenance

Partager

4 Commentaires

  1. Avatar Bipil Raut -Développeur de logiciels dit:

    Excellente explication,,,,

  2. Pourriez-vous également ajouter les questions ci-dessous

    Comment pouvons-nous invoquer des procédures stockées en veille prolongée ?
    Quelle est la collection ordonnée et la collection triée
    qu'est-ce que l'état persistant
    Comment la vérification sale est configurée
    Configurer l'interface de rappel
    Comment détacher un objet
    que se passe-t-il si je détache un objet transitoire
    expliquer chaque niveau ORM dans Hibernate
    Comment activer/désactiver le cache de premier et deuxième niveau
    Comment pouvons-nous lier la fabrique de sessions hibernate à JNDI ?
    Quelle est la différence entre les méthodes load() et get() en veille prolongée ?
    différence entre session.lock() et session.merge()
    Comment une classe est mappée comme immuable et pourquoi
    Comment pouvons-nous utiliser de nouvelles interfaces personnalisées pour améliorer les fonctionnalités des interfaces intégrées de mise en veille prolongée ?

    1. Avatar Mehul Patel dit:

      Hey administrateur, ce sera fructueux si vous ajoutez cette question ou des questions plus importantes comme un QCM pour un concours

Soyez sympa! Laissez un commentaire

Votre adresse email n'apparaitra pas. Les champs obligatoires sont marqués *