Die 20 häufigsten Fragen und Antworten zu Hibernate-Interviews [Für Neueinsteiger und Erfahrene]

Veröffentlicht: 2020-12-31

Java hat lange Zeit eine der Spitzenpositionen in der Liste der beliebtesten Programmiersprachen eingenommen. Als Programmiersprache mit hoher Priorität, die von Entwicklern weltweit bevorzugt wird, wird Java natürlich von einer riesigen Sammlung von Tools, Bibliotheken und Frameworks begleitet. In diesem Beitrag sprechen wir über ein beliebtes Java-Framework, Hibernate.

Jeder, der mit Java gearbeitet hat oder arbeitet, kennt Hibernate und seine Stärken. Lassen Sie uns es jedoch für diejenigen unter Ihnen aufschlüsseln, die gerade auf diesen Namen gestoßen sind – Hibernate.

Inhaltsverzeichnis

Was ist Ruhezustand?

Hibernate ist ein ORM-Tool (Object-Relational Mapping), das ausschließlich für Java entwickelt wurde. Mit anderen Worten, es bietet einen Rahmen, der dabei hilft, ein objektorientiertes Modell auf eine relationale Datenbank abzubilden. Hibernate konzentriert sich hauptsächlich auf die Abbildung von Java-Klassen auf Datenbanktabellen und die Abbildung von Java-Datentypen auf SQL -Datentypen.

Hibernate erweitert auch Datenabfrage- und Abrufdienste. Es ist in Java geschrieben und basiert auf JVM. Hibernate bietet Referenzimplementierungen der Java Persistence API, was es zu einer fantastischen Wahl für ORM (Object Relational Mapping) macht. Wir können die Hibernate-Persistenz-API für CRUD-Vorgänge verwenden

Ursprünglich sollte Hibernate als einfachere und bessere Alternative zu EJB2 (Enterprise Java Beans Version 2) dienen. Heute rühmt sich Hibernate, eines der am weitesten verbreiteten ORM-Tools für Java-Anwendungen zu sein.

Es wird häufig für die Entwicklung von Java-basierten Unternehmensanwendungen für Datenbankoperationen verwendet. Außerdem eignet sich die Hibernate Persistence API hervorragend für CRUD-Operationen.

Nachdem Sie nun einige Hintergrundkenntnisse über Hibernate haben, wollen wir dieses ORM-Tool mit diesen X Hibernate-Interviewfragen ein wenig besser kennenlernen!

Melden Sie sich für Softwareentwicklungskurse an den besten Universitäten der Welt an. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Fragen und Antworten zum Hibernate-Interview

1.Was ist ORM?

ORM (Object Relational Mapping) bezeichnet eine Technik zur Abbildung von Objekten auf die in einer Datenbank gespeicherten Daten. Das Ziel von ORM ist es, die Datenerstellung, den Datenzugriff und die Datenmanipulation zu vereinfachen.

2.Was ist JPA?

Java Persistence API (JPA) ist eine Spezifikation, die ORM-Tools Standards und Funktionalitäten zuweist. Sie können über das javax.persistence -Paket auf JPA-Klassen und -Schnittstellen zugreifen. Alle JPA-Spezifikationen werden mithilfe von Annotationen im javax.persistence-Paket definiert. Der Vorteil der Verwendung von JPA-Annotationen besteht darin, dass Sie damit implementierungsunabhängigen Code schreiben können.

3.Was sind die wichtigen JPA-Annotationen, die für die Hibernate-Zuordnung verwendet werden?

Hibernate unterstützt JPA-Annotationen zusammen mit vielen anderen Annotationen, auf die Sie über das Paket org.hibernate.annotations zugreifen können. Hier sind sieben der wichtigsten JPA-Anmerkungen:

javax.persistence.Entity – Wird in Kombination mit Modellklassen verwendet, um sie als Entity-Beans zu deklarieren.

javax.persistence.Table – Wird mit Entity Beans verwendet, um den entsprechenden Tabellennamen in einer Datenbank zu definieren.

javax.persistence.Access – Wird verwendet, um den Zugriffstyp, das Feld oder die Eigenschaft anzugeben. Der Standardwert für diese Anmerkung ist Feld.

javax.persistence.Id – Definiert den Primärschlüssel in der Entity-Bean.

javax.persistence.EmbeddedId – Wird verwendet, um einen zusammengesetzten Primärschlüssel in der Entity-Bean anzugeben.

javax.persistence.Column – Gibt den Spaltennamen in der Datenbanktabelle an.

javax.persistence.GeneratedValue – Es definiert die Strategie, die zum Generieren des Primärschlüssels benötigt wird.

4.HQL definieren

HQL steht für Hibernate Query Language. Es ist eine objektorientierte Abfragesprache, unabhängig von der Datenbank.

5.Wie würden Sie das Mapping im Ruhezustand durchführen?

Die Assoziationszuordnungsfunktion von Hibernate erleichtert die Zuordnung, indem sie die vier Standardzuordnungen unterstützt, die denen eines relationalen Datenbankmodells entsprechen:

  • Eins-zu-eins-Assoziationen
  • One-to-many-Assoziationen
  • Viele-zu-eins-Verknüpfungen
  • Viele-zu-viele-Assoziationen

Jede dieser Assoziationen kann entweder als unidirektionale oder als bidirektionale Assoziation abgebildet werden.

6. Nennen Sie die wichtigsten Schnittstellen/Komponenten von Hibernate.

Hibernate hat sechs Kernschnittstellen – Configuration, SessionFactory, Session, Query, Criteria und Transaction.

7.Können Sie in Hibernate eine SQL-Abfrage erstellen?

Ja, Sie können in Hibernate SQL-Abfragen erstellen. Um eine SQL-Abfrage zu erstellen, müssen Sie die folgende Syntax verwenden:

Sitzung.SQLQuery erstellen

8.Was ist die Hibernate-Konfigurationsdatei?

Die Hibernate-Konfigurationsdatei speichert datenbankspezifische Konfigurationen. Es wird verwendet, um die SessionFactory-Schnittstelle zu initialisieren. Diese Datei enthält auch andere relevante Informationen wie Dialektinformationen, die es Hibernate ermöglichen, den Datenbanktyp und die Zuordnungsdatei/Klassendetails zu kennen.

9.Was ist eine persistente Klasse?

In Hibernate werden die Klassen, deren Objekte und Instanzen in Datenbankklassen gespeichert sind, als persistente Klassen bezeichnet.

10.Sitzung definieren

Die Session-Schnittstelle liegt zwischen Hibernate und einer Java-Anwendungsschicht. Es wird hauptsächlich zum Ausführen von Datenbankoperationen verwendet. Session hilft dabei, eine Verbindung zwischen einer Hibernate-App und einer Datenbank herzustellen und aufrechtzuerhalten. Es bietet verschiedene Methoden zum Ausführen von Erstellungs-, Lese-, Aktualisierungs- und Löschoperationen für persistente Objekte.

Außerdem verhält sich Session wie eine Factory von Query, Criteria und Transaction, was bedeutet, dass es Factory-Methoden erweitert, um diese Instanzen zurückzugeben. Sie können das Session-Objekt verwenden, um Kriterien zu erstellen und HQL-Abfragen und native SQL-Abfragen auszuführen.

11.SessionFactory definieren.

In Hibernate ist SessionFactory die Factory-Klasse, die für den Zugriff auf Session-Objekte verwendet wird. Es liest die Hibernate-Konfigurationsparameter und stellt eine Verbindung zur Datenbank her, um Sitzungsobjekte abzurufen. SessionFactory ist im Wesentlichen eine Factory von Session und stellt die Instanz von Session bereit.

Sobald die SessionFactory erstellt wurde, ist ihr interner Zustand festgelegt, wodurch sie unveränderlich wird. Der interne Zustand der SessionFactory enthält die vollständigen Metadaten des Object/Relational Mapping.

12.Unterscheiden Sie zwischen der Hibernate-Konfigurationsdatei und der Hibernate-Mapping-Datei.

Die Hibernate-Konfigurationsdatei enthält datenbankspezifische Konfigurationen und Dialektinformationen. Es wird verwendet, um SessionFactory zu initialisieren. Sie können auf die Datenbankanmeldeinformationen oder JNDI-Ressourceninformationen aus der Hibernate-Konfigurations-XML-Datei zugreifen.

Andererseits wird die Hibernate-Zuordnungsdatei verwendet, um Datenbanktabellen-Spaltenzuordnungen und Entity-Bean-Felder zu definieren. Die Zuordnungsdatei ist der Kern jeder Hibernate-App. Es enthält eine Zuordnung von einem POJO-Klassennamen zu einem Tabellennamen und von POJO-Klassenvariablennamen zu Tabellenspaltennamen.

13.Was sind POJOs?

POJO ist ein Akronym für Plain Old Java Object. Im Wesentlichen sind POJOs Java-Beans, die mit standardmäßigen Getter- und Setter-Methoden für individuelle Eigenschaften entwickelt wurden. Der Vorteil der Verwendung von POJOs anstelle von Java-Klassen besteht darin, dass Sie sauberen, präzisen und effizienten Code schreiben können.

14. Benennen Sie die Schlüsselkomponenten eines Hibernate-Konfigurationsobjekts.

Ein Hibernate-Konfigurationsobjekt hat zwei Schlüsselkomponenten

  1. Datenbankverbindung, die von einer oder mehreren Konfigurationsdateien verwaltet wird.
  2. Einrichtung der Klassenzuordnung, mit der die Verbindung zwischen Java-Klassen und Datenbanktabellen hergestellt wird.

15.Was ist Hibernate Dialekt?

Hibernate Dialect gibt den Datenbanktyp an, den Sie verwenden möchten. Dadurch kann Hibernate diese Informationen im Voraus kennen, um geeignete SQL-Anweisungen zu generieren, die am besten zu Ihrem bevorzugten/spezifizierten Datenbanktyp passen.

16.Definieren Sie „Ruhezustand-Caching“.

Hibernate-Caching ist der Prozess der Datenabfrage, um die Geschwindigkeit und Leistung einer Hibernate-Anwendung zu verbessern. Ziel ist es, die Anzahl der Datenbankabfragen zu minimieren, was zu einer reduzierten Durchlaufzeit führt.

EHCache ist die Standard-Cache-Funktion von Hibernate.

17.Was sind First-Level- und Second-Level-Cache?

In Hibernate bezieht sich der First-Level-Cache auf den Sitzungs-Cache. Es ist der obligatorische Cache, den alle Anforderungen durchlaufen müssen. Der zweite Cache ist ein optionaler Cache, der Objekte sitzungsübergreifend zwischenspeichert.

Sie können einen Second-Level-Cache basierend auf einer Vorerfassungs- und Klassenbasis konfigurieren. Als allgemeine Regel gilt, dass der First-Level-Cache konsultiert werden muss, bevor Sie versuchen, ein Objekt im Second-Level-Cache zu finden.

18. Erklären Sie die verschiedenen Stadien einer Objekt-/Entitäts-Bean.

Eine Objekt-/Entity-Bean-Instanz existiert normalerweise in einer der folgenden drei Phasen:

  • Transient – ​​In dieser Phase bleibt ein Objekt niemals bestehen oder wird mit einer Sitzung verknüpft. Sie können transiente Instanzen in persistente Instanzen umwandeln, indem Sie die Funktionen save(), persist() oder saveOrUpdate() verwenden. Um eine persistente Instanz wieder auf transient zurückzusetzen, können Sie den Befehl delete() verwenden.
  • Persistent – ​​Ein Objekt erreicht den persistenten Zustand, wenn es einer eindeutigen Sitzung zugeordnet wird. Alle von get()- oder load()-Funktionen zurückgegebenen Instanzen befinden sich im persistenten Zustand.
  • Getrennt – Wenn ein persistentes Objekt keiner Sitzung zugeordnet ist, erreicht es den getrennten Zustand. Sie können eine getrennte Instanz über die Funktionen update(), saveOrUpdate(), lock() oder replicate() in eine persistente Instanz umwandeln.

19.Was ist der Zweck von Dirty Checking im Ruhezustand?

Die automatische Dirty-Checking-Funktion von Hibernate ruft automatisch Update-Anweisungen für Objekte auf, die in einer Transaktion geändert wurden, und hilft so Entwicklern, zeitraubende Schreibvorgänge zu vermeiden.

Dirty Checking ändert/aktualisiert nur Felder, die eine Aktion erfordern, während die anderen Felder unberührt bleiben. Insgesamt wird die Datenbankschreibzeit reduziert.

20. Definieren Sie „Transaktionsverwaltung“.

Die Transaktionsverwaltung ist eine Funktion des Spring-Frameworks. Es ist im Grunde der Prozess der Verwaltung einer Reihe von Befehlen/Anweisungen. In Hibernate führt die Transaktionsschnittstelle die Transaktionsverwaltung durch, indem sie die Abstraktion von der Transaktionsimplementierung (JTA, JDBC) beibehält. Sie können eine Transaktion initiieren, indem Sie die Methode session.beginTransaction() aufrufen .

Lesen Sie auch: Fragen und Antworten zu Java-Interviews

Fazit

Auch wenn diese zwanzig Hibernate-Interviewfragen nur an der Oberfläche des betreffenden Themas kratzen, hoffen wir, dass dies Ihnen dabei hilft, das Eis mit Hibernate zu brechen und tiefer einzutauchen!

Wir wünschen Ihnen alles Gute für Ihren Berufseinstieg in Java!

Landen Sie in Ihrem Traumjob

Bewerben Sie sich jetzt für den Master in Software Engineering