Cele mai frecvente 20 de întrebări și răspunsuri la interviu Hibernate [Pentru cei proaspăt și cu experiență]

Publicat: 2020-12-31

Pentru mult timp, Java a deținut una dintre pozițiile de top în lista celor mai populare limbaje de programare. Desigur, fiind un limbaj de programare cu prioritate ridicată preferat de dezvoltatorii din întreaga lume, Java este însoțit de o colecție masivă de instrumente, biblioteci și cadre. În această postare, vom vorbi despre un cadru Java popular, Hibernate.

Oricine a lucrat cu sau lucrează cu Java este bine conștient de Hibernate și de puterile sale. Cu toate acestea, permiteți-ne să o dezvăluim pentru cei dintre voi care tocmai au întâlnit acest nume – Hibernate.

Cuprins

Ce este Hibernate?

Hibernate este un instrument ORM (object-relational mapping) conceput exclusiv pentru Java. cu alte cuvinte, oferă un cadru pentru a ajuta la maparea unui model orientat pe obiecte la o bază de date relațională. Hibernate se concentrează în primul rând pe maparea de la clase Java la tabelele bazei de date și maparea de la tipuri de date Java la tipuri de date SQL .

Hibernate extinde, de asemenea, serviciile de interogare și de recuperare a datelor. Este scris în Java și este bazat pe JVM. Hibernate oferă implementări de referință ale API-ului Java Persistence, ceea ce îl face o alegere fantastică pentru ORM (Object Relational Mapping). Putem folosi API-ul de persistență Hibernate pentru operațiuni CRUD

Inițial, Hibernate a fost conceput pentru a servi ca o alternativă mai simplă și mai bună a EJB2 (Enterprise Java Beans versiunea 2). Astăzi, Hibernate se mândrește că este unul dintre cele mai utilizate instrumente ORM pentru aplicațiile Java.

Este utilizat pe scară largă pentru dezvoltarea aplicațiilor de întreprindere bazate pe Java pentru operațiunile de baze de date. De asemenea, API-ul Hibernate Persistence este excelent pentru operațiunile CRUD.

Acum că aveți cunoștințe de bază despre Hibernate, să cunoaștem acest instrument ORM puțin mai bine cu aceste întrebări X Hibernate Interviu!

Înscrieți-vă la cursurile de dezvoltare software de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Întrebări și răspunsuri la interviu Hibernate

1. Ce este ORM?

ORM (Object Relational Mapping) se referă la o tehnică de mapare a obiectelor cu datele stocate într-o bază de date. Scopul ORM este de a simplifica crearea datelor, accesul la date și manipularea datelor.

2. Ce este JPA?

Java Persistence API (JPA) este o specificație care alocă standarde și funcționalități instrumentelor ORM. Puteți accesa clasele și interfețele JPA din pachetul javax.persistence . Toate specificațiile JPA sunt definite folosind adnotări din pachetul javax.persistence. Avantajul utilizării adnotărilor JPA este că vă permit să scrieți cod independent de implementare.

3. Care sunt adnotările JPA importante folosite pentru cartografierea Hibernate?

Hibernate acceptă adnotări JPA împreună cu multe alte adnotări pe care le puteți accesa prin pachetul org.hibernate.annotations. Iată șapte dintre cele mai importante adnotări JPA:

javax.persistence.Entity – Este folosit în combinație cu clasele model pentru a le declara ca bean-uri entități.

javax.persistence.Table – Este folosit cu entity beans pentru a defini numele tabelului corespunzător într-o bază de date.

javax.persistence.Access – Este folosit pentru a specifica tipul de acces, câmpul sau proprietatea. Valoarea implicită pentru această adnotare este câmp.

javax.persistence.Id – Definește cheia primară în bean-ul entitate.

javax.persistence.EmbeddedId – Este folosit pentru a specifica o cheie primară compusă în bean-ul entitate.

javax.persistence.Column – Specifică numele coloanei din tabelul bazei de date.

javax.persistence.GeneratedValue – Definește strategia necesară pentru generarea cheii primare.

4.Definiți HQL

HQL înseamnă Hibernate Query Language. Este un limbaj de interogare orientat pe obiecte, independent de baza de date.

5.Cum ați efectua maparea în Hibernare?

Caracteristica de mapare de asociere a lui Hibernate facilitează maparea prin sprijinirea celor patru asocieri standard, la fel ca cea a unui model de bază de date relațională:

  • Asociații unu-la-unu
  • Asociații unu-la-mulți
  • Asociații multi-la-unu
  • Asociații de la mulți la mulți

Fiecare dintre aceste asociații poate fi mapată ca asociere unidirecțională sau bidirecțională.

6. Denumiți interfețele/componentele principale ale Hibernate.

Hibernate are șase interfețe de bază - Configurație, SessionFactory, Session, Query, Criteria și Tranzacție.

7.Puteți crea o interogare SQL în Hibernate?

Da, puteți crea interogări SQL în Hibernate. Pentru a crea o interogare SQL, trebuie să utilizați următoarea sintaxă:

Session.createSQLQuery

8.Ce este fișierul de configurare Hibernate?

Fișierul de configurare Hibernate stochează configurații specifice bazei de date. Este folosit pentru a inițializa interfața SessionFactory. Acest fișier conține și alte informații relevante, cum ar fi informații despre Dialect, care îi permit lui Hibernate să cunoască tipul bazei de date și detaliile fișierului/clasei de mapare.

9.Ce este clasa persistentă?

În Hibernate, clasele ale căror obiecte și instanțe sunt stocate în clase de baze de date sunt numite clase persistente.

10.Definiți sesiunea

Interfața Session se află între Hibernate și un strat de aplicație Java. Este folosit în principal pentru efectuarea operațiunilor cu bazele de date. Sesiunea ajută la stabilirea și menținerea unei conexiuni între o aplicație Hibernate și o bază de date. Oferă diferite metode de a efectua operațiuni de creare, citire, actualizare și ștergere pentru obiecte persistente.

De asemenea, Session acționează ca o fabrică de interogări, criterii și tranzacții, ceea ce înseamnă că extinde metodele din fabrică pentru a returna aceste instanțe. Puteți utiliza obiectul Session pentru a crea criterii și pentru a executa interogări HQL și interogări native SQL.

11.Definește SessionFactory.

În Hibernate, SessionFactory este clasa din fabrică folosită pentru a accesa obiectele Session. Citește parametrii de configurare Hibernate și se conectează la baza de date pentru a prelua obiectele Session. SessionFactory este în esență o fabrică de Session și oferă instanța Session.

Odată creată SessionFactory, starea sa internă este fixată, făcându-l imuabil. Starea internă a SessionFactory conține metadatele complete ale Object/Relational Mapping.

12. Deosebiți între fișierul de configurare Hibernate și fișierul de mapare Hibernate.

Fișierul de configurare Hibernate include configurații specifice bazei de date și informații despre Dialect. Este folosit pentru a inițializa SessionFactory. Puteți accesa acreditările bazei de date sau informațiile despre resurse JNDI din fișierul XML de configurare Hibernate.

Pe de altă parte, fișierul de mapare Hibernate este utilizat pentru a defini mapările coloanelor din tabelul bazei de date și câmpurile de tip bean de entitate. Fișierul de mapare este nucleul fiecărei aplicații Hibernate. Conține o mapare de la un nume de clasă POJO la un nume de tabel și nume de variabile de clasă POJO la nume de coloane de tabel.

13.Ce sunt POJO-urile?

POJO este un acronim pentru Plain Old Java Object. În esență, POJO-urile sunt boabe Java concepute cu metode standard de getter și setter pentru proprietăți individuale. Avantajul utilizării POJO în locul claselor Java este că puteți scrie cod curat, precis și eficient.

14. Denumiți componentele cheie ale unui obiect de configurare Hibernate.

Un obiect de configurare Hibernate are două componente cheie

  1. Conexiune la baza de date care este gestionata de unul sau mai multe fisiere de configurare.
  2. Configurare de mapare a clasei care este utilizată pentru a stabili conexiunea dintre clasele Java și tabelele bazei de date.

15. Ce este Hibernate Dialect?

Hibernate Dialect specifică tipul de bază de date pe care doriți să o utilizați. Acesta permite Hibernate să cunoască aceste informații în avans pentru a genera instrucțiuni SQL adecvate care se vor potrivi cel mai bine tipului dumneavoastră de bază de date preferat/specificat.

16. Definiți „Hibernare cache”.

Memorarea în cache Hibernate este procesul de interogare a datelor pentru a îmbunătăți viteza și performanța unei aplicații Hibernate. Scopul este de a minimiza numărul de interogări la baza de date, rezultând un timp de transfer redus.

EHCache este caracteristica cache implicită a Hibernate.

17.Ce sunt cache-urile de primul nivel și de al doilea nivel?

În Hibernate, cache-ul de prim nivel se referă la cache-ul sesiunii. Este cache-ul obligatoriu prin care trebuie să treacă toate solicitările. Al doilea cache este un cache opțional care memorează în cache obiectele de-a lungul sesiunilor.

Puteți configura un cache de nivel al doilea pe baza unei precolectări și pe clasă. Ca regulă generală, cache-ul de primul nivel trebuie consultat înainte de a face orice încercare de a localiza un obiect în cache-ul de al doilea nivel.

18.Explicați diferitele etape ale unui bean obiect/entitate.

O instanță de bean obiect/entitate există de obicei în oricare dintre următoarele trei faze:

  • Tranzitoriu – În această fază, un obiect nu persistă niciodată sau nu se asociază cu nicio sesiune. Puteți converti instanțe tranzitorii în persistente utilizând funcțiile save(), persist() sau saveOrUpdate(). Pentru a readuce o instanță persistentă la tranzitorie, puteți folosi comanda delete().
  • Persistent – ​​Un obiect ajunge la starea persistentă atunci când se asociază cu o sesiune unică. Toate instanțele returnate de funcțiile get() sau load() sunt în stare persistentă.
  • Detașat – Când un obiect persistent nu se asociază cu nicio sesiune, ajunge în starea detașat. Puteți converti o instanță detașată în persistentă prin intermediul funcțiilor update(), saveOrUpdate(), lock() sau replicate().

19.Care este scopul verificării murdare în Hibernate?

Caracteristica automată de verificare a murdăriei a Hibernate apelează automat declarația de actualizare a obiectelor modificate într-o tranzacție, ajutând astfel dezvoltatorii să evite acțiunile de scriere care necesită timp.

Verificarea murdară modifică/actualizează doar câmpurile care necesită acțiune, păstrând celelalte câmpuri neatinse. În general, reduce timpul de scriere a bazei de date.

20. Definiți „Gestionarea tranzacțiilor”.

Gestionarea tranzacțiilor este o caracteristică a cadrului Spring. Este practic procesul de gestionare a unui set de comenzi/instrucțiuni. În Hibernate, interfața Tranzacție realizează Gestionarea Tranzacției prin menținerea abstracției din implementarea tranzacției (JTA, JDBC). Puteți iniția o tranzacție apelând metoda session.beginTransaction() .

Citiți și: Întrebări și răspunsuri la interviu Java

Concluzie

În concluzie, chiar dacă aceste douăzeci de întrebări de interviu Hibernate zgârie suprafața subiectului în cauză, sperăm că acest lucru vă va ajuta să spargeți gheața cu Hibernate și să explorați mai adânc în ea!

Vă dorim toate cele bune pentru a vă începe cariera în Java!

Aterizează la locul de muncă visat

Aplicați acum pentru masterat în inginerie software