Top 50 de întrebări la interviu Hibernate (2025)

Iată întrebările și răspunsurile la interviu Hibernate pentru cei în curs de dezvoltare, precum și pentru candidații cu experiență pentru a obține jobul visat.


1. Ce este Hibernate?

Hibernate este un cadru popular de Java care permite o mapare eficientă a obiectelor, folosind fișiere de configurare în format XML. După maparea obiectelor Java la tabelele bazei de date, baza de date este utilizată și gestionată folosind obiecte Java fără a scrie interogări complexe ale bazei de date.

Descărcare PDF gratuită: Întrebări și răspunsuri la interviu Hibernate


2. Ce este ORM?

ORM (Object Relational Mapping) este conceptul fundamental al cadrului Hibernate care mapează tabele de baze de date cu obiecte Java și apoi oferă diverse APIpentru a efectua diferite tipuri de operații pe tabelele de date.


3. Cum sunt mapate proprietățile unei clase la coloanele unui tabel al bazei de date în Hibernate?

Mapările dintre proprietățile clasei și coloanele din tabel sunt specificate în XML fișier ca în exemplul de mai jos:


4. Care este utilizarea interfeței de configurare în hibernare?

Interfața de configurare a cadrului hibernare este folosită pentru a configura hibernarea. De asemenea, este obișnuit bootstrap hibernează. Documentele de cartografiere din hibernare sunt localizate folosind această interfață.


5. Cum putem folosi noi interfețe personalizate pentru a îmbunătăți funcționalitatea interfețelor încorporate de hibernare?

Putem folosi interfețe de extensie pentru a adăuga orice funcționalitate necesară care nu este acceptată de interfețele încorporate.

Întrebări de interviu Hibernate
Întrebări de interviu Hibernate

6. Ar trebui ca toate fișierele de mapare din hibernate să aibă extensia .hbm.xml pentru a funcționa corect?

Nu, a avea extensia .hbm.xml este o convenție și nu o cerință pentru numele fișierelor de mapare hibernate. Putem avea orice extensie pentru aceste fișiere de mapare.


7. Cum creăm o fabrică de sesiuni în hibernare?

hibernează întrebările interviului
hiberna

Pentru a crea o fabrică de sesiune în hibernare, este creat mai întâi un obiect de configurare care se referă la calea fișierului de configurare și apoi pentru acea configurație, fabrica de sesiune este creată așa cum este prezentat în exemplul de mai jos:

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

8. Ce sunt POJO-urile și care este semnificația lor?

POJO-urile (Plain Old Java Objects) sunt java beans cu metode de getter și setter adecvate pentru fiecare proprietate.
Folosirea POJO-urilor în loc de simple clase Java are ca rezultat un cod eficient și bine construit.


9. Ce este HQL?

HQL este limbajul de interogare folosit în Hibernate, care este o extensie a SQL. HQL este un limbaj de interogare foarte eficient, simplu și flexibil pentru a face diferite tipuri de operații pe baze de date relaționale fără a scrie interogări complexe de baze de date.


10. Cum putem invoca procedurile stocate în hibernare?

În hibernare putem executa proceduri stocate folosind codul de mai jos:


11. Ce este criteria API?

Criteria este un API simplu, dar puternic, de hibernare, care este folosit pentru a prelua entități prin compoziția obiectelor criterii.


12. Care sunt beneficiile utilizării șablonului Hibernate?

Următoarele sunt câteva beneficii cheie ale utilizării șablonului Hibernate:
o. Închiderea sesiunii este automată.
b. Interacțiunea cu sesiunea de hibernare este simplificată.
c. Gestionarea excepțiilor este automatizată.


13. Cum putem vedea SQL-ul generat în hibernare pe consolă?

Trebuie să adăugăm următoarele în fișierul de configurare hibernare pentru a permite vizualizarea SQL pe consolă în scopuri de depanare:


14. Care sunt cele două tipuri de colecții în hibernare?

Următoarele sunt cele două tipuri de colecții în hibernare:

  1. Colecție sortată
  2. Colectarea comenzilor


15. Care este diferența dintre metodele session.save() și session.saveOrUpdate() în hibernare?

Metoda Sessionsave(). salvează o înregistrare numai dacă este unică în ceea ce privește cheia primară și nu va putea fi inserată dacă cheia primară există deja în tabel.
metoda saveOrUpdate(). inserează o înregistrare nouă dacă cheia primară este unică și va actualiza o înregistrare existentă dacă cheia primară există deja în tabel.


16. Care sunt beneficiile hibernarii peste JDBC?

  • Hibernate poate fi utilizat fără probleme cu orice tip de bază de date, deoarece baza de date este independentă, în timp ce în cazul JDBC, dezvoltatorul trebuie să scrie interogări specifice bazei de date.
  • Folosind hibernate, dezvoltatorul nu trebuie să fie un expert în scrierea de interogări complexe, deoarece HQL simplifică procesul de scriere a interogărilor, în timp ce în cazul JDBC, sarcina de dezvoltator este să scrie și să ajusteze interogările.
  • În caz de hibernare, nu este nevoie să creați pool-uri de conexiuni, deoarece hibernarea gestionează automat toate conexiunile, în timp ce în cazul JDBC, pool-urile de conexiuni trebuie create.

17. Cum putem obține statistici de hibernare?

Putem obține statistici de hibernare folosind metoda getStatistics() a clasei SessionFactory, așa cum se arată mai jos:

SessionFactory.getStatistics()

18. Ce este starea instanței tranzitorii în Hibernate?

Dacă o instanță nu este asociată cu niciun context persistent și, de asemenea, nu a fost niciodată asociată cu niciun context persistent, atunci se spune că este în stare tranzitorie.


19. Cum putem reduce timpul de acțiune de scriere a bazei de date în Hibernate?

Hibernate oferă o funcție de verificare murdară care poate fi utilizată pentru a reduce timpul de scriere a bazei de date. Funcția de verificare murdară a hibernare actualizează numai acele câmpuri care necesită o modificare, în timp ce altele le păstrează neschimbate.


20. Care este utilizarea interfețelor de apel invers în hibernare?

Interfețele de apel invers ale hibernate sunt utile pentru a primi notificări de evenimente de la obiecte. De exemplu, atunci când un obiect este încărcat sau șters, este generat un eveniment și notificarea este trimisă folosind interfețele de apel invers.


21. Când o instanță intră în stare detașată în hibernare?

Când o instanță a fost asociată anterior cu un context persistent (de exemplu, un tabel) și nu mai este asociată, este chemată să fie în stare detașată.


22. Care sunt cele patru niveluri ORM în hibernare?

Următoarele sunt cele patru niveluri ORM în hibernare:

  • Relațional pur
  • Cartografierea obiectelor ușoare
  • Maparea obiectelor medii
  • Maparea completă a obiectelor

23. Ce este gestionarea tranzacțiilor în hibernate? Cum funcționează?

Managementul tranzacțiilor este procesul de gestionare a unui set de instrucțiuni sau comenzi. În hibernare; gestionarea tranzacțiilor se face prin interfața tranzacției, așa cum se arată în codul de mai jos:

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. Care sunt cele două metode de configurare hibernare?

Putem folosi oricare dintre următoarele două metode de configurare a hibernarii:

  1. Configurație bazată pe XML (folosind fișierul hibernate.cfg.xml)
  2. Configurare programatică (folosind logica codului)

25. Care este serviciul cache implicit al hibernate?

Hibernate acceptă mai multe servicii cache precum EHCache, OSCache, SWARMCache și TreeCache, iar serviciul cache implicit al hibernate este EHCache.


26. Care sunt cele două asociații de cartografiere utilizate în hibernare?

În hibernare; avem următoarele două tipuri de asocieri de mapare între entități:

  1. Asociația unu-la-unu
  2. Asociația Multi-la-Mulți

27. Care este utilizarea API-ului Hibernate QBC?

API-ul Hibernate Query By Criteria (QBC) este folosit pentru a crea interogări prin manipularea obiectelor criterii în timpul execuției.


28. În câte moduri, obiectele pot fi preluate din baza de date în hibernare?

Hibernate oferă următoarele patru moduri de a prelua obiecte din baza de date:

  • Folosind HQL
  • Folosind identificatorul
  • Utilizarea API-ului Criteria
  • Folosind SQL standard

29. Cum se creează cheia primară utilizând hibernare?

Cheia primară a bazei de date este specificată în fișierul de configurare hbm.xml. Generatorul poate fi folosit și pentru a specifica modul în care cheia primară este creată în baza de date.
În exemplul de mai jos, deptId acționează ca cheie primară:


30. Cum putem reatașa orice obiecte detașate în Hibernate?

Obiectele care au fost detașate și nu mai sunt asociate cu nicio entitate persistentă pot fi reatașate apelând metoda session.merge() a clasei de sesiune.


31. Care sunt moduri diferite de a dezactiva cache-ul de al doilea nivel de hibernare?

Cache-ul de al doilea nivel de hibernare poate fi dezactivat folosind oricare dintre următoarele moduri:

  • Setând use_second_level_cache ca false.
  • Prin utilizarea CACHEMODE.IGNORE
  • Folosind furnizorul de cache ca org.hibernate.cache.NoCacheProvider

32. Ce sunt metadatele ORM?

Toată maparea dintre clase și tabele, proprietăți și coloane, tipuri Java și tipuri SQL etc. este definită în metadatele ORM.


33. Care este fabrica de tranzacții implicită în hibernare?

Cu hibernate 3.2, fabrica de tranzacții implicită este JDBCTransactionFactory.


34. Care este rolul JMX în hibernare?

Aplicațiile și componentele Java sunt gestionate în hibernare de un API standard numit API JMX. JMX oferă instrumente pentru dezvoltarea de soluții eficiente și robuste distribuite, bazate pe web.


35. Cum putem lega fabrica de sesiuni de hibernare la JNDI?

Fabrica de sesiuni Hibernate poate fi legată de JNDI făcând modificări de configurare în fișierul hibernate.cfg.


36. În câte moduri pot fi identificate obiectele în Hibernate?

Identificarea obiectelor se poate face în hibernare în următoarele trei moduri:

  • Utilizarea Identității obiectului: Folosind operatorul ==.
  • Utilizarea egalității obiectelor: Folosind metoda equals().
  • Utilizarea identității bazei de date: obiectele bazei de date relaționale pot fi identificate dacă reprezintă același rând.

37. Ce strategii diferite de preluare sunt pentru hibernare?

Următoarele strategii de preluare sunt disponibile în hibernare:

  1. Alăturați-vă Fetching
  2. Preluare lot
  3. Selectați Preluare
  4. Subselectați Preluare

38. Cum se face maparea obiectelor java cu tabelele bazei de date?

Pentru a mapa obiecte java cu tabele de baze de date, trebuie să avem nume de proprietăți Java beans la fel ca numele de coloane ale unui tabel de bază de date. Apoi maparea este furnizată în fișierul hbm.xml, după cum este prezentat mai jos:


39. Care sunt proprietățile derivate în hibernare?

Proprietățile derivate sunt acele proprietăți care nu sunt mapate la nicio coloană a unui tabel al bazei de date. Astfel de proprietăți sunt calculate în timpul execuției prin evaluarea oricăror expresii.


40. Ce înseamnă o interogare SQL numită în hibernare și cum este utilizată?

Interogările SQL denumite sunt acele interogări care sunt definite în fișierul de mapare și sunt apelate oriunde după cum este necesar.
De exemplu, putem scrie o interogare SQL în fișierul nostru de mapare XML, după cum urmează:

Apoi această interogare poate fi apelată după cum urmează:

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

41. Care este diferența dintre metoda load() și get() în hibernare?

Metodele Load() au ca rezultat o excepție dacă înregistrările necesare nu sunt găsite în baza de date, în timp ce metoda get() returnează null atunci când înregistrările împotriva id-ului nu sunt găsite în baza de date.
Deci, în mod ideal ar trebui să folosim metoda Load() numai atunci când suntem siguri de existența înregistrărilor împotriva unui id.


42. La ce folosește proprietatea versiunii în hibernare?

Proprietatea Versiune este folosită în hibernare pentru a ști dacă un obiect este în stare tranzitorie sau în stare detașată.


43. Ce este programarea orientată pe atribute?

În programarea orientată pe atribute, un dezvoltator poate adăuga metadate (atribute) în codul sursă java pentru a adăuga mai multă semnificație codului. Pentru Java (hibernare), programarea orientată pe atribute este activată de un motor numit XDoclet.


44. La ce folosește session.lock() în hibernare?

Metoda session.lock() a clasei de sesiune este folosită pentru a atașa din nou un obiect care a fost detașat mai devreme. Această metodă de reatașare nu verifică nicio sincronizare a datelor în baza de date în timp ce reatașează obiectul și, prin urmare, poate duce la lipsa sincronizării datelor.


45. Hibernarea suportă polimorfismul?

Da, hibernare acceptă pe deplin polimorfismul. Interogările de polimorfism și asocierile de polimorfism sunt acceptate în toate strategiile de mapare din hibernare.


46. ​​Care sunt cele trei modele de moștenire de hibernare?

Hibernate are următoarele trei modele de moștenire:

  1. Tabele pe clasă de beton
  2. Tabel pe ierarhie de clasă
  3. Tabel pe subclasă

47. Cum putem mapa clasele ca fiind imuabile?

Dacă nu dorim ca o aplicație să actualizeze sau să ștergă obiectele unei clase în hibernare, putem face clasa ca imuabilă setând mutable=false


48. Ce este fluxul general de hibernare folosind RDBMS?

Fluxul general de hibernare care implică RDBMS este următorul:

  • Încărcați fișierul de configurare și creați obiectul clasei de configurare.
  • Folosind obiectul de configurare, creați obiectul sessionFactory.
  • De la sessionFactory, obțineți o sesiune.
  • Creați o interogare HQL.
  • Executați interogarea HQL și obțineți rezultatele. Rezultatele vor fi sub forma unei liste.

49. Ce este Cartografierea obiectelor luminoase?

Light Object Mapping este unul dintre nivelurile de calitate ORM în care toate entitățile sunt reprezentate ca clase și sunt mapate manual.


50. Care este diferența dintre asociațiile gestionate și asociațiile de hibernare?

Asociațiile gestionate se referă la persistența gestionării containerelor și sunt bidirecționale, în timp ce asociațiile de hibernare sunt unidirecționale.


Aceste întrebări de interviu vă vor ajuta, de asemenea, în viva (orale)

Distribuie

4 Comentarii

  1. Avatar Bipil Raut -Dezvoltator de software spune:

    Excelenta explicatie,,,,

  2. Ați putea adăuga și întrebările de mai jos

    Cum putem invoca proceduri stocate în hibernare?
    Ce este colectarea comandată și colectarea sortată
    ce este starea persistentă
    Cum este configurată verificarea murdară
    Configurați interfața de apel invers
    Cum să faci un obiect detașat
    ce s-a întâmplat dacă detașez obiectul tranzitoriu
    explicați fiecare nivel ORM din Hibernate
    Cum să activați/dezactivați cahce de primul și al doilea nivel
    Cum putem lega fabrica de sesiuni de hibernare la JNDI?
    Care este diferența dintre metoda load() și get() în hibernare?
    diferența dintre session.lock() și session.merge()
    Cum o clasă este mapată ca imuabilă și de ce
    Cum putem folosi noi interfețe personalizate pentru a îmbunătăți funcționalitatea interfețelor încorporate de hibernare?

    1. Avatar Mehul patel spune:

      Bună admin Va fi fructuos dacă adăugați această întrebare sau întrebări mai importante, cum ar fi mcq, pentru examenul competitiv

Lasă un comentariu

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate *