Top 100 des questions et réponses d'entretien d'hibernation

30 octobre 2021

Les questions de l'entretien Hibernate sont posées aux candidats expérimentés. Ces questions d'entretien d'hibernation permettront de rafraîchir vos connaissances avant l'entretien. Les 100 meilleures questions d'entretien d'hibernation sont conçues pour les débutants et les professionnels. Les questions d'entretien Hibernate suivantes importantes peuvent être classées en questions de base, intermédiaires et avancées.

Table des matières

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

En commençant par les questions d'entretien d'hibernation de niveau de base



Hibernate est l'un des frameworks Java les plus populaires qui simplifient le développement d'applications Java pour interagir avec les bases de données. C'est un outil ORM (Object Relational Mapping). Hibernate fournit également une implémentation de référence de l'API Java.

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

2. Quels sont les principaux avantages d'Hibernate Framework ?

C'est l'une des questions importantes de l'entretien Hibernate.

  • Open source et léger
  • Les performances sont rapides
  • Aide à générer des requêtes indépendantes
  • Fournit des installations pour créer une table
  • Statistiques sur les requêtes et état de la base de données

3. Quels sont les avantages d'utiliser Hibernate plutôt que JDBC ?

C'est l'un des plus demandés questions d'entretien.

  • Élimine beaucoup de code passe-partout.
  • Prend en charge l'héritage, les associations et les collections
  • HQL est plus orienté objet et plus proche de Java
  • Fournit implicitement la gestion des transactions
  • Il encapsule des exceptions et lève des exceptions JDBC qui sont les exceptions non contrôlées

4. Qu'est-ce qu'un outil ORM ?

C'est l'une des questions délicates de l'entretien

Technique qui mappe l'objet stocké dans la base de données. Un outil ORM aide à simplifier la création, la manipulation et l'accès aux données.

Application Java-> Objet-> ORM-> Base de données

5. Pourquoi utiliser Hibernate Framework ?

C'est parmi les questions d'entrevue d'entrée de gamme.

  • Surmonte la dépendance à la base de données rencontrée dans le JDBC
  • Le changement des bases de données coûte cher de travailler sur JDBC
  • La portabilité du code est facilement gérée

6. Quelles sont les différentes fonctionnalités prises en charge par Hibernate ?

  • C'est un outil ORM
  • Il utilise HQL
  • Il prend en charge les opérations DDL automatiques
  • Il dispose également d'un support de génération automatique de clé primaire
  • Prend en charge la mémoire cache
  • La gestion des exceptions n'est pas obligatoire

7. Quelles sont les technologies prises en charge par Hibernate ?

  • XDoclet Printemps
  • J2EE
  • Plugins Eclipse
  • Maven

8. Qu'est-ce qu'HQL ?

HQL est l'acronyme de Langage de requête Hibernate . C'est un langage de requête orienté objet et indépendant de la base de données.

Voir également Top 100 des questions et réponses d'entrevue Ansible

9. Comment réaliser le mappage dans Hibernate ?

Les mappages d'associations sont l'une des fonctionnalités clés d'Hibernate. Il prend en charge les mêmes associations que le modèle de base de données relationnelle.

réaliser le mappage dans Hibernate

10. Nommez quelques-unes des interfaces importantes du framework Hibernate ?

  • Usine de session (org.hibernate.SessionFactory) : une instance de celle-ci est utilisée pour récupérer des objets de session pour les opérations de base de données.
  • Session(org.hibernate.Session) : son usine pour les transactions, elle est utilisée pour connecter des applications avec des magasins persistants comme hibernate framework/DB.
  • Transaction(org.hibernate.Transaction): Cela spécifie les unités de travail simples / atomiques.
interfaces importantes du framework Hibernate

11. Qu'est-ce que l'association One-to-One dans Hibernate ?

Modélisez le système pour l'entité pour laquelle vous souhaitez parcourir la relation dans votre modèle de requête ou de domaine.

Association un à un dans Hibernate

12. Qu'est-ce que l'association One-to-Many dans Hibernate ?

Un objet peut être associé à plusieurs/différents objets. En parlant de mappage, le mappage One-to-Many est implémenté à l'aide d'une collection Set Java.

l'association One-to-Many dans Hibernate

13. Qu'est-ce que l'association plusieurs à plusieurs dans Hibernate ?

Le mappage plusieurs-à-plusieurs nécessite un attribut d'entité et une annotation @ManyToMany. Il peut être unidirectionnel et bidirectionnel.

l'association plusieurs à plusieurs dans Hibernate

14. Qu'entendez-vous par fichier de configuration Hibernate ?

Les fichiers de configuration d'Hibernate sont des informations de dialecte, de sorte qu'hibernate connaît le type de base de données et les détails du fichier de mappage ou de la classe.

Il contient des configurations spécifiques à la base de données.

15. Mentionnez quelques annotations importantes utilisées pour la cartographie.

  • javax.persistence.Entity
  • javax.persistence.Table
  • javax.persistence.Access
  • javax.persistence.Embeddedid
  • javax.persistence.Column
  • javax.persistence.GeneratedValue

16. Comment intégrer Hibernate et Spring ?

intégrer Hibernate et Spring

Il n'est pas nécessaire d'utiliser Hibernate Transaction Management

17. Qu'est-ce qu'une session dans Hibernate et comment l'obtenir ?

  • Créer
  • Lire
  • Mettre à jour
  • Supprimer

Pour obtenir la session, vous pouvez exécuter des requêtes HQL, des requêtes SQL natives en utilisant l'objet de session.

18. Qu'est-ce que l'usine Hibernate Session ?

SessionFactory est la classe de fabrique utilisée pour obtenir les objets Session.

Il est créé au démarrage de l'application et conservé pour une utilisation ultérieure.

Cette SessionFactory est un objet thread-safe qui est utilisé par tous les threads d'une application.

19. Quelle est la différence entre openSession et getCurrentSession ?

getCurrentSession()ouvreSession()
Renvoie la session liée au contexte et pour que cela fonctionne, vous devez le configurer dans le fichier de configuration d'Hibernate.Aide à ouvrir une nouvelle session. Vous devez fermer cet objet de session une fois que vous avez terminé toutes les opérations de base de données.

20. Comment configurer un fichier Hibernate ?

  • Identifier les POJO
  • Identifier quelles propriétés des POJO doivent être poursuivies
  • Annotez chacun des POJO
  • Créer un schéma de base de données
  • Ajouter des bibliothèques Java d'hibernation
  • Créer un fichier de configuration XML d'hibernation
  • Créez un objet de configuration Hibernate qui fait référence à votre fichier de configuration XML
  • Construire un objet SessionFactory hibernate et récupérer

21. Quels sont les composants clés d'un objet de configuration Hibernate ?

  • Connexion à la base de données
  • Configuration du mappage de classe

22. Discutez des collections dans Hibernate.

  • Liste des tableaux
  • Vecteur

Une collection peut être une liste, des ensembles, une carte, un ensemble trié, une carte triée, Java

23. Quels sont les types de collection dans Hibernate ?

Il existe principalement cinq types de collection utilisés pour le mappage de relations un à plusieurs :

  • Carte
  • Ensembles
  • Déployer
  • Lister
  • Sac

24. Quels sont les avantages d'utiliser des modèles Hibernate

  • Capacité de fermeture de session automatisée
  • L'interaction avec la session d'hibernation est simplifiée
  • La gestion des exceptions est automatisée

25. Quels sont les modèles de conception utilisés dans le framework Hibernate ?

  • Modèle de modèle de domaine
  • Mappeur de données
  • Modèle de proxy
  • Modèle d'usine
  • Objet d'accès aux données (DAO)
  • Usine abstraite
  • Mappage objet-relationnel (ORM)
  • Objet de requête

Principales questions et réponses de l'entretien d'hibernation

26. Définir le cadre du validateur Hibernate.

La validation des données est utilisée dans la couche de présentation avec l'utilisation de Javascript et du code côté serveur avant le traitement.

Cadre de validation Hibernate

27. Comment définiriez-vous la vérification sale automatique ?

La vérification sale automatique peut être définie comme une fonctionnalité qui nous aide à économiser l'effort de demander explicitement à Hibernate de mettre à jour la base de données chaque fois que nous modifions ou apportons des changements à l'état d'un objet dans une transaction.

28. Comment pouvez-vous partager vos points de vue sur les fichiers de description cartographique ?

  • Les fichiers de description de mappage sont utilisés par Hibernate pour configurer les fonctions.
  • *.hbm extension, qui facilite le mappage entre les tables de base de données et la classe Java.
  • Utiliser ou non des fichiers de description de mappage dépend entièrement des entités commerciales.

29. Qu'entend-on par Light Object Mapping ?

La syntaxe est masquée de la logique métier à l'aide de modèles de conception spécifiques

Cartographie des objets légers

30. Qu'entend-on par réglage de l'hibernation ?

C'est l'une des questions d'entretien d'hibernation avancées.

Hibernate tuning est un processus d'optimisation des performances des applications Hibernate.

  • Optimisation SQL
  • Gestion des sessions
  • Mise en cache des données

31. Qu'est-ce que la gestion des transactions en veille prolongée et comment fonctionne-t-elle ?

La gestion des transactions est un processus de gestion d'un ensemble de commandes ou d'instructions.

Une transaction est associée à une session et est instanciée en appelant session.beginTransaction().

32. Comment intégrez-vous Hibernate aux applications Web Struts2 ou Servlet ?

  • Enregistrer un ServletContextListener personnalisé
  • Initialisez la session Hibernate, stockez-la dans le contexte du servlet.
  • La classe d'action aide à obtenir la session Hibernate

33. Quels sont les différents états d'une entité persistante ?

  • Transient n'est pas associé à la session et n'a aucune représentation dans la base de données.
  • À l'aide de Persistent, vous pouvez rendre persistante une instance transitoire en l'associant à une session.
  • En utilisant Detached si vous fermez la session Hibernate, les instances persistantes deviendront une instance détachée.

34. Comment la clé primaire peut-elle être créée en utilisant Hibernate ?

Une clé primaire est une colonne de table de base de données relationnelle spéciale désignée pour identifier de manière unique tous les enregistrements de table. Il est spécifié dans le fichier de configuration hbm.xml.

|__+_|

35. Expliquez Hibernate Proxy et comment cela aide-t-il dans le chargement paresseux ?

  • Hibernate utilise un objet proxy afin de prendre en charge le chargement différé.
  • Hibernate ne charge pas tous les objets mappés.
  • Après avoir référencé un objet enfant via des méthodes getter, le code proxy sera entré dans la base de données.
  • Utilise l'assistance Java pour générer efficacement et dynamiquement des implémentations de sous-classes.

36. Comment pouvons-nous voir le SQL généré par Hibernate sur la console ?

vrai

37. Qu'est-ce que le cache de requêtes dans Hibernate ?

Hibernate implémente une région de cache distincte pour l'ensemble de résultats des requêtes qui s'intègre au cache de second niveau d'Hibernate.

Cela n'est utile que pour les requêtes exécutées fréquemment avec les mêmes paramètres.

|__+_|

38. Quel est l'avantage de la prise en charge des requêtes Native SQL dans Hibernate ?

Hibernate fournit une option pour exécuter des requêtes SQL natives via l'utilisation de l'objet SQL Query.

La requête SQL native est pratique lorsque vous souhaitez exécuter des requêtes spécifiques à la base de données qui ne sont pas prises en charge par l'API Hibernate, telles que les conseils de requête ou le mot-clé Connect dans Oracle Database.

39. Qu'est-ce qu'une requête SQL nommée ?

Vous pouvez définir une requête SQL nommée à un emplacement central et les utiliser n'importe où dans le code.

  • @NamedQuery
  • @NamedNativeQuery

40. Quand utilisez-vous merge() et update() dans Hibernate ?

Mettre à jour:

Si vous êtes sûr que la session Hibernate ne contient pas une instance déjà persistante avec le même identifiant.

Aller():

Aide à fusionner vos modifications à tout moment sans tenir compte de l'état de la session.

41. Différence entre la méthode get() et la méthode load() dans Hibernate ?

charger()avoir()
Il lèvera une exception, si un objet avec un ID qui leur est passé n'est pas trouvé.Retournera null
Peut renvoyer un proxy sans toucher à la base de données, sauf si nécessaire.Il va toujours dans la base de données.

42. Différence entre le cache de premier et de deuxième niveau dans Hibernate.

Celui-ci fait partie des questions délicates de l'entretien d'hibernation.

Le cache de premier niveau est maintenu au niveau de la session et est activé par défaut.Le cache de deuxième niveau est maintenu au niveau SessionFactory et est partagé par toutes les sessions.

43. Différence entre Session et SessionFactory dans Hibernate.

Une session est un objet monothread de courte durée. Il fournit le cache de premier niveau.SessionFactory est immuable et partagé par toutes les Session. Il vit également jusqu'à ce que l'hibernation soit en cours d'exécution.

44. Différence entre les méthodes hibernate save(), saveOrUpdate() et persist() ?

Hibernate save peut être utilisé pour enregistrer des entités dans la base de données. Le problème avec save() est qu'il peut être appelé sans transaction et si nous avons des entités de mappage, seul l'objet principal est enregistré, ce qui provoque des incohérences de données.

Voir également Top 100 des questions et réponses d'entrevue JavaScript

En outre, save renvoie immédiatement l'identifiant généré.

Hibernate persist est similaire à la sauvegarde avec une transaction. Je pense que c'est mieux que de sauvegarder car nous ne pouvons pas l'utiliser en dehors des limites d'une transaction, donc tous les mappages d'objets sont préservés.

De plus, persist ne renvoie pas l'identifiant généré immédiatement, de sorte que la persistance des données se produit en cas de besoin.

Hibernate les résultats saveOrUpdate dans les requêtes d'insertion ou de mise à jour en fonction des données fournies. Si les données sont présentes dans la base de données, une requête de mise à jour est exécutée.

Nous pouvons également utiliser saveOrUpdate() sans transaction, mais encore une fois, vous rencontrerez des problèmes avec les objets mappés qui ne seront pas enregistrés si la session n'est pas vidée.

45. Différence entre la collection triée et ordonnée dans Hibernate.

Collection triéeCollecte commandée
Les collections triées trient les données dans la mémoire de tas de la JVM à l'aide des méthodes de tri du framework de collection de Java.La collection ordonnée est triée à l'aide d'une clause order by dans la base de données elle-même.

46. ​​Différence entre l'état transitoire, persistant et détaché dans Hibernate.

État transitoireÉtat persistantEtat détaché
De nouveaux objets sont créés dans le programme Java mais ne sont associés à aucune session Hibernate.Un objet associé à une session Hibernate est appelé un objet persistant. Vous pouvez appeler save() ou persist()Vous pouvez rattacher un objet détaché aux sessions Hibernate en appelant la méthode update() ou saveOrUpdate()

47. Différence entre les associations gérées et les associations Hibernate ?

Associations géréesHibernation des associations
Se rapportent à la persistance de la gestion des conteneurs et sont bidirectionnelsCes associations sont unidirectionnelles

48. Quelles sont les meilleures pratiques recommandées par Hibernate pour les classes persistantes ?

  • Les classes Java ont besoin d'un constructeur par défaut
  • Les classes doivent contenir un ID
  • Les attributs doivent être déclarés privés

49. Quelles sont les bonnes pratiques à suivre avec le framework Hibernate ?

  • Pour les applications Web, essayez toujours d'utiliser JNDI DataSource plutôt que de configurer pour créer une connexion en veille prolongée.
  • Préférez le modèle DAO pour exposer les différentes méthodes qui peuvent être utilisées avec le bean entité.
  • Pour les collections, essayez d'utiliser des listes, des cartes et des ensembles. Évitez les tableaux car vous ne bénéficiez pas du chargement paresseux.
  • Évitez les relations plusieurs à plusieurs, elles peuvent être facilement mises en œuvre à l'aide de relations bidirectionnelles un à plusieurs et plusieurs à un.
  • Vérifiez toujours l'accès au champ de la clé primaire.
  • Par défaut, hibernate définit directement les valeurs des champs, sans utiliser de setters.
  • Utilisez la requête sql native uniquement lorsque cela ne peut pas être fait avec HQL.
  • Utilisez judicieusement les requêtes nommées, conservez-les à un seul endroit pour faciliter le débogage.

50. Comment le mappage est-il effectué entre les tables d'objets et de base de données ?

Hibernate fournit deux méthodes pour que vous puissiez vous connecter avec vos tables de base de données.

Il fournit une implémentation JPA, nous pouvons donc utiliser des annotations JPA ainsi que des configurations XML pour réaliser ce mappage.

Principales questions et réponses de l'entretien d'hibernation

51. Que sont les fichiers de mappage Hibernate ?

Par convention, le nom du fichier de mappage doit être class_name.hbm.xml.

  • Hibernate-mapping : élément racine
  • Classe : spécifie la classe persistante
  • Id : spécifie l'attribut de clé primaire dans la classe
  • Générateur : utilisé pour générer la clé primaire
  • Property : spécifie le nom de la propriété de la classe Persistent
|__+_|

52. Quelles sont les étapes pour créer un exemple d'application d'Hibernate ?

  • Créer un objet Java
  • Créer un fichier de mappage
  • Créer une connexion à la base de données
  • Classe d'implémentation utilisée pour stocker ou obtenir des données à l'aide de POJO
étapes pour créer un exemple d'application d'Hibernate

53. Quels sont les types de mise en cache Hibernate ?

types de mise en cache Hibernate

54. Configurez Hibernate Second Level Cache à l'aide d'EHCache.

Le cache de deuxième niveau est maintenu au niveau SessionFactory.

  • Ajoutez la dépendance hibernate-ehcache dans votre projet maven, si ce n'est pas maven, ajoutez les jars correspondants.
|__+_|
  • Ajoutez les propriétés ci-dessous dans le fichier de configuration d'hibernation.
|__+_|
  • Annoter les beans entité avec l'annotation @Cache et la stratégie de mise en cache à utiliser
|__+_|

55. Je veux un code spécifique indépendant de la base de données dans mon projet. Comment puis je faire ça?

Utilisez n'importe quel framework ORM comme Hibernate, Ibatis.

56. Comment dois-je récupérer une liste d'objets via la méthode get ou load ?

  • Il n'est pas possible de récupérer une liste de données/objets.
  • get ou load ne prend qu'un seul identifiant.

57. Pouvez-vous enregistrer les requêtes sql générées par hibernate ? Comment?

Vous pouvez enregistrer les requêtes SQL générées par hibernate à l'aide des commandes suivantes

  1. show_sql=vrai
  2. logging.level.org.hibernate.SQL=DEBUG

58. Est-il bon d'activer la journalisation sql pour l'environnement de production ?

  • Non généralement nous ne préférons pas.
  • Mieux vaut définir le niveau de journalisation de l'hibernation comme erreur, logging.level.org.hibernate = ERROR

59. Comment valider le schéma ?

Il s'agit d'une question d'entrevue de niveau avancé.

Utilisez hbm2ddl=validate afin de valider le schéma.

60. Je veux récupérer toutes les valeurs d'une colonne particulière à partir d'une table. Comment allez-vous?

  • Utiliser la projection d'Hibernate
  • Utiliser JPA CriteriaBuilder
  • Utiliser JPQL

61. Quels sont les différents types de données pris en charge dans Hibernate ?

Le type de données Hibernate joue un rôle important car il agit comme un pont entre les types Java et les types de données DB.

  • Types primitifs
  • Types de données et d'heure
  • Types d'objets binaires et volumineux
  • Autres types liés au JDK

62. Quel élément est utilisé dans la propriété hibernate maps java.util.SortedMap ?

63. Quel est le type de retour de save() ?

  • java.io.Serializable.

64. Quel est l'objet critère dans Hibernate ?

Il est utilisé pour créer et exécuter des requêtes orientées objet pour récupérer l'objet.

65. Qu'est-ce que l'API de persistance Java (JPA) ?

JPA signifie Java Persistence API. Il fournit des spécifications pour la gestion des données relationnelles dans les applications.

66. Que savez-vous du fichier de transaction ?

Les transactions désignent un fichier de travail qui peut enregistrer les modifications apportées ou annuler les modifications. Une transaction peut être démarrée par session.beginTransaction() et elle utilise une connexion JDBC, CORBA ou JTA.

Lorsque cette session démarre, plusieurs transactions peuvent avoir lieu.

67. Quelle est la différence entre les méthodes add jar() et add directory() ?

Ces méthodes sont les plus pratiques à utiliser en hibernation. Ces méthodes vous permettent de charger tous vos documents d'hibernation à la fois.

Ces méthodes simplifient la configuration du code, la mise en page de la refactorisation, etc. Ces fonctions vous aident à ajouter votre mappage Hibernate aux fichiers d'initialisation Hibernate.

68. Que sont les POJO ?

POJO est synonyme d'anciens objets Java simples. Ce ne sont que des JavaBeans de base qui ont défini des méthodes setter et getter pour toutes les propriétés présentes dans ce bean. En outre, ils peuvent également avoir une logique métier liée à cette propriété.

69. À quoi ressemble le code d'hibernation ?

|__+_|

70. Quelles sont les différentes méthodes d'identification d'un objet ?

  • Identité de l'objet
  • Égalité d'objet
  • Identité de la base de données

71. Quels sont les niveaux d'ORM en veille prolongée ?

Il y a quatre niveaux ORM en hibernation.

  • Relationnel pur
  • Cartographie des objets légers
  • Mappage d'objet moyen
  • Mappage complet des objets

72. Quelles sont les bases de données prises en charge par hibernate ?

Certains moteurs de base de données pris en charge par Hibernate :

  • Oracle
  • MySQL
  • PostgreSQLName
  • BD SAP
  • SybaseASE
  • Base de données H2
  • Base de données Microsoft SQL Server
  • Moteur de base de données HSQL
  • DB2/NT
  • Serveur dynamique Informix
  • FrontBase

73. Qu'est-ce que @Transient dans Hibernate ?

@Transient est l'un des états d'objet. Dans hibernate qui est un mappage de relation d'objet, il mappera ou créera chaque variable avec la classe que nous avons définie.

74. Que sont les interfaces de rappel en hibernation ?

Les interfaces de rappel d'hibernate sont utiles pour recevoir des notifications d'événements à partir 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.

75. Qu'est-ce qu'une propriété ORM relationnelle pure dans hibernate ?

Dans un mappage relationnel objet-relationnel pur, l'application entière, y compris l'interface utilisateur, est conçue autour du modèle relationnel et des opérations relationnelles basées sur SQL.

Voir également Top 100 des questions et réponses d'entrevue JavaScript

Principales questions et réponses de l'entretien d'hibernation

76. Quelles sont les interfaces d'extension du framework hibernate ?

Il existe de nombreuses interfaces d'extension fournies par hibernate.

  • Interface ProxyFactory : Pour créer des proxys
  • Interface TransactionFactory : Pour la gestion des transactions
  • Interface ConnectionProvide : pour la gestion des connexions JDBC
  • Interface de transaction : pour la gestion des transactions
  • Interface TransactionManagementLookup : pour la gestion des transactions
  • Interface de cache : elle fournit des techniques et des stratégies de mise en cache
  • Interface CacheProvider : identique à l'interface Cache
  • Interface ClassPersister : elle fournit des stratégies ORM
  • Interface IdentifierGenerator : pour la génération de clé primaire
  • Classe abstraite de dialecte : elle fournit SQL Support

77. Comment pouvons-nous hiberner l'usine de session vers JNDI ?

La fabrique de sessions Hibernate peut être liée à JNDI en effectuant des changements de configuration dans hibernate.cfg.file.

78. Quels sont les types d'états d'instance Hibernate ?

Trois types d'états d'instance :

  • Transitoire : l'instance n'est associée à aucun contexte de persistance
  • Persistant : l'instance est associée à un contexte de persistance
  • Détaché : l'instance était associée à un contexte de persistance qui a été fermé ou n'est actuellement pas associé.

79. Quelle est la principale différence entre le printemps et l'hibernation ?

Spring et Hibernate sont deux choses différentes, Spring a plusieurs composants comme Dependency Injection, Spring MVC, Spring ORM, Spring Du repos FEU.

Donc, Spring ORM et Hibernate sont un peu similaires, ils traitent tous les deux du modèle de relation d'objet, ce qui signifie qu'ils traitent des objets Java de connexion aux entités de base de données.

Désormais, si vous souhaitez créer une API Rest à l'aide de l'API Spring Rest pour ORM, vous pouvez choisir le framework Hibernate ou Spring ORM. Dans les deux cas, il existe des avantages et des inconvénients, mais l'industrie majeure utilise Hibernate.

80. Quelle annotation doit être utilisée pour déclarer une classe dans le bean Hibernate ?

Nous pouvons utiliser l'annotation @Entity pour déclarer une classe en tant qu'entité.

Exemple:

|__+_|

81. Qu'est-ce que le chargement différé dans Hibernate ?

Dans le chargement différé, nous pouvons charger des objets en fonction des besoins.

Le chargement différé est activé par défaut à partir d'Hibernate 3.0 afin que les objets enfants ne soient pas chargés pendant le chargement du parent.

82. Quelles sont les stratégies de mappage d'héritage disponibles ?

Hibernate propose trois méthodes de mappage d'héritage, comme indiqué ci-dessous :

  • Tableau par classe de béton
  • Tableau par hiérarchie
  • Tableau par sous-classe

83. Décrivez l'objet critère dans Hibernate.

Nous pouvons utiliser des objets de critères pour créer et exécuter des requêtes orientées objet pour récupérer l'objet.

84. Expliquez l'objet Session dans Hibernate.

Il est utilisé pour obtenir une connexion avec une base de données. Un objet de session est créé pour instancier une interaction avec une base de données, tandis que les objets persistants sont récupérés à l'aide d'un objet de session. Les objets de session ne sont pas thread-safe afin qu'ils puissent être créés et détruits selon les besoins.

85. À quoi sert l'appel Hibernate Session merge() ?

Nous pouvons utiliser Hibernate Session merge() pour mettre à jour les valeurs existantes ; cependant, cette méthode crée une copie de l'objet entité passé et la renvoie. L'objet renvoyé fait partie du contexte persistant et fait l'objet d'un suivi pour toute modification ; l'objet donné n'est pas suivi. Par exemple, un programme, lire hibernate merge.

86. Que se passera-t-il si un utilisateur n'a pas de constructeur sans arguments dans le bean Entity ?

Hibernator utilise l'API Reflection pour créer une instance de beans Entity lors de l'appel de la méthode get() ou load(). La méthode Class.newInstance() est utilisée pour cela, et elle nécessite un constructeur sans argument. Donc, si vous n'avez pas de constructeur sans arguments dans les beans entité, Hibernate ne parviendra pas à l'instancier et vous obtiendrez HibernateException.

87. Comment implémenter des relations dans Hibernate ?

Nous pouvons rapidement mettre en œuvre des relations telles que le mappage un à un, le mappage un à plusieurs et le mappage plusieurs à plusieurs à l'aide d'annotations JPA ainsi que de configurations basées sur XML.

88. Comment utiliser JNDI DataSource avec le framework Hibernate ?

Il est toujours utile d'autoriser un conteneur de servlet à gérer le pool de connexions en tant qu'utilisateur afin que nous définissions la ressource JNDI pour DataSource et que nous puissions l'utiliser dans l'application Web. C'est un mot simple à utiliser dans Hibernate, tout ce dont nous avons besoin est de supprimer toutes les propriétés spécifiques à la base de données et d'utiliser la fonctionnalité ci-dessous pour fournir le nom de la source de données JNDI.

Exemple:

java:comp/env/jdbc/MyLocalDB

89. Quels sont les avantages du plugin Hibernate Tools Eclipse ?

Le plug-in d'outils Hibernate aide les utilisateurs à écrire rapidement des fichiers de configuration et de mappage d'hibernation. Le principal avantage est que le contenu aide l'utilisateur à utiliser différentes propriétés et balises XML. Il les valide par rapport aux fichiers Hibernate DTD, afin que l'utilisateur connaisse à l'avance toute erreur.

90. Expliquez les composants clés utilisés dans Hibernate.

Les composants clés d'Hibernate sont décrits ci-dessous :

  • Session : La session est utilisée pour obtenir un réseau physique avec une base de données.
  • Requête : Il utilise la chaîne SQL et HQL pour récupérer les données de la base de données et créer des objets.
  • Transaction : la transaction représente l'unité de travail avec une base de données.
  • Critères : l'utilisation principale des critères est de créer et d'exécuter des requêtes orientées objet et de récupérer les objets.
  • Configuration : Il représente les propriétés des fichiers requis par Hibernate.
  • Session Factory : Il configure l'hibernation pour l'application à l'aide du fichier de configuration fourni et instancie l'objet de session.

91. Devrions-nous rendre la classe Entity finale ou non ? Si non, alors pourquoi ?

Hibernate utilise une classe proxy pour le chargement paresseux des données, et cela peut être fait en étendant le bean entité si nous finalisons le chargement paresseux. Le chargement paresseux ne sera pas possible, d'où de faibles performances.

92. La Session Factory d'Hibernate est-elle thread-safe ?

La fabrique de session d'Hibernate est thread-safe car l'état interne de SessionFactory est immuable, et plusieurs threads peuvent accéder à SessionFactory est immuable, et plusieurs threads peuvent accéder simultanément à la fabrique de session pour obtenir des instances de session.

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

C'est le fichier qui contient les informations permettant d'établir une connexion avec le logiciel de base de données et de fournir des instructions à Hibernate Framework.

Ce fichier contient trois types de détails :

  • Propriétés de connexion
  • Propriétés d'hibernation
  • Hibernate les noms de fichiers de mappage.

94. Quels sont les trois concepts de base utilisés dans le framework Hibernate ?

  • Configuration : Lorsque l'objet de configuration Hibernate est créé, le framework Hibernate sera activé en fonction de la fichier jar qui est ajouté au chemin de classe ou au chemin de construction. Cet objet lit également les données et vérifie les entrées du fichier de configuration et du fichier de mappage donnés et stocke les informations sous forme de métadonnées en mémoire au niveau de la RAM sous la forme d'un objet HashMap.

Maintenant, si fichier de configuration, mapper les informations du fichier requises lors de l'exécution de l'application. Il se connectera à partir de ces métadonnées en mémoire (HashMap) au lieu d'accéder à ces fichiers XML physiques.

Exemple:

//Activer le framework Hibernate

//Vérifiez et lisez les deux fichiers de configuration, mappez les données du fichier et stockez les données sous forme de métadonnées en mémoire

Registre Final StandardServiceRegistry = nouveau

StandardServiceRegistryBuilder().configure().build();

  • SessionFactory : elle sera créée en fonction de l'objet StandardServiceRegistry. Cet objet contient des propriétés de connexion, des informations sur le fichier de configuration Hibernate, des informations sur le fichier de mappage et d'autres détails, il est donc appelé un objet lourd dans la programmation Hibernate.

C'est un objet immuable, c'est-à-dire qu'une fois les données placées dans cet objet, il ne peut pas être modifié.

C'est un objet thread-safe car tous les objets immuables sont des objets thread-safe par défaut.

C'est une usine pour créer des objets Session en hibernation.

Exemple:

SessionFactory sessionFactory = nouveau

MetadataSources(registre).buildMetadata().buildSessionFactory();

  • Session : l'objet SessionFactory obtient un objet de connexion à partir de son pool de connexions JDBC et utilise cet objet pour créer un objet de session Hibernate.

L'objet Connexion ouverte entre l'application Java et le logiciel de base de données via les frameworks Hibernate.

C'est l'objet de base permettant aux programmeurs de donner des instructions de persistance au framework d'hibernation à l'aide d'objets de classe Domain.

Ce n'est pas un objet thread-safe par défaut.

Exemple : Session session = HibernateUtil.getSessionFactory().openSession();

95. Qu'est-ce qu'un dialecte Hibernate ?

C'est une propriété facultative du fichier de configuration d'Hibernate mais c'est une propriété recommandée à utiliser. Cela aide le framework Hibernate à décider du logiciel de base de données de destination avec lequel communiquer.

Il aide le cadre d'hibernation à générer du SQL optimisé tel que requis pour le logiciel de base de données sous-jacent.

org.hibernate.dialect.MySQLDialect

96. Quelle est la différence entre les méthodes session.save() et session.persist() ?

Session.save()Session.persist()
Il est utilisé pour renvoyer la valeur d'identité générée.Il ne renvoie pas la valeur d'identité générée car son type de retour est void.

Signature :

Public Seraizible save(Object obj);

Public void persist(Object obj);

97. Quelle est la différence entre les méthodes session.load() et session.get() ?

session.get()session.load()
Effectuer un chargement précoce/impatientEffectuer un chargement paresseux
Ne crée aucun objet proxyCela créera un objet proxy
Créer le seul objet pour la classe de domaine pour charger un seul enregistrementIl créera deux objets (proxy + objet de lecture) pour que la classe de domaine charge un seul enregistrement
Ne lève aucune exception si un enregistrement n'est pas trouvéIl lèvera une exception si un enregistrement n'est pas trouvé, c'est-à-dire ObjectNotFoundException
Convient pour vérifier si l'enregistrement est disponible ou nonNe convient pas pour vérifier si un enregistrement est disponible ou non. Si vous êtes sûr que l'enregistrement est disponible, utilisez uniquement
Utilisez cette méthode lorsque l'enregistrement chargé sera utilisé immédiatementUtilisez cette méthode lorsque l'enregistrement chargé sera utilisé dernièrement

98. Quelle est la différence entre les méthodes session.save() ou session.saveOrUpdate() ?

session.update()session.saveOrUpdate()
Il est utilisé pour mettre à jour les enregistrements en utilisant une requête SQLIl est utilisé pour mettre à jour l'enregistrement si l'enregistrement est déjà disponible, sinon, il insérera l'enregistrement. Pour cela, il génère en interne une requête de sélection et une requête d'insertion/mise à jour.

99. Quelle est la différence entre les méthodes session.saveOrUpdate() et session.merge() ?

session.saveOrUpdate()session.merge()
Il ne renvoie pas d'objet représentant l'enregistrement qui sera inséré ou mis à jour car son type de retour est void.Elle renvoie un objet représentant l'enregistrement qui sera inséré/mis à jour.
Si nous appelons session.saveOrUpdate() pour mettre à jour l'objet avec la même valeur d'identité qui est déjà présente dans le cache de premier niveau de l'objet de session, nous obtiendrons Exception. (NonUniqueObjectException).Si nous appelons session.merge() pour mettre à jour l'objet avec la même valeur d'identité qui est déjà présente dans le cache de premier niveau de l'objet de session, aucune exception ne se déclenchera, de plus la modification de l'objet donné sera synchronisée avec les enregistrements de la table de base de données.

Remarque : Si vous modifiez le même enregistrement en chargeant l'enregistrement ou l'objet dans plusieurs sessions, fusionnez toutes les modifications et répercutez les modifications apportées à la table de base de données, utilisez la méthode session.merge().

100. Pourquoi avons-nous besoin de la propriété hibernate.hbm2ddl.auto ?

Hibernate vous permet de créer/modifier des tables de base de données en fonction de la configuration effectuée dans les fichiers de mappage d'hibernate.

Cette option est utile pour ajouter de nouvelles colonnes au milieu du développement du projet ou dans l'environnement de production du projet.

Cette propriété est également utile pour créer dynamiquement des tables de base de données. Si la base de données est modifiée au milieu du développement du projet ou dans l'environnement de production de manière dynamique.

Il est recommandé de ne pas utiliser cette option pour concevoir la table de base de données d'un projet car cela sera pris en charge par l'équipe de conception de la base de données avant le codage du projet.

Cette propriété a quatre valeurs :

  • Créer
  • Mettre à jour
  • Valider (par défaut)
  • Créer-déposer

C'est tout pour les questions et réponses de l'entretien Hibernate. Toutes les questions et réponses importantes de l'entrevue ont été énumérées ci-dessus. Ces questions d'entretien rafraîchiront vos connaissances et vous aideront sûrement à réussir votre entretien.