Top 50 pitanja za intervju za Hibernate (2025.)
Ovdje se nalaze pitanja i odgovori na razgovoru za Hibernate za početnike kao i za iskusne kandidate koji će dobiti posao iz snova.
1. Što je Hibernate?
Hibernate je popularan okvir Jave koji omogućuje učinkovito Object Relational mapiranje pomoću konfiguracijskih datoteka u XML formatu. Nakon preslikavanja Java objekata u tablice baze podataka, baza podataka se koristi i rukuje pomoću Java objekata bez pisanja složenih upita baze podataka.
Besplatno preuzimanje PDF-a: Hibernate Interview Pitanja i odgovori
2. Što je ORM?
ORM (Object Relational Mapping) temeljni je koncept okvira Hibernate koji preslikava tablice baze podataka s Java objektima i zatim pruža različite APIsluži za izvođenje različitih vrsta operacija na podatkovnim tablicama.
3. Kako se svojstva klase preslikavaju u stupce tablice baze podataka u Hibernateu?
Preslikavanja između svojstava klase i stupaca tablice navedena su u XML datoteku kao u primjeru u nastavku:
4. Koja je upotreba konfiguracijskog sučelja u hibernaciji?
Konfiguracijsko sučelje okvira hibernacije koristi se za konfiguraciju hibernacije. Također se koristi za bootstrap hibernirati. Dokumenti mapiranja hibernate nalaze se pomoću ovog sučelja.
5. Kako možemo koristiti nova prilagođena sučelja za poboljšanje funkcionalnosti ugrađenih sučelja hibernacije?
Možemo koristiti sučelja proširenja kako bismo dodali sve potrebne funkcije koje ne podržavaju ugrađena sučelja.
6. Trebaju li sve datoteke preslikavanja hibernate imati ekstenziju .hbm.xml da bi ispravno radile?
Ne, posjedovanje ekstenzije .hbm.xml je konvencija, a ne uvjet za nazive datoteka hibernacije mapiranja. Možemo imati bilo koje proširenje za ove datoteke mapiranja.
7. Kako stvaramo tvornicu sesija u hibernaciji?
Da biste stvorili tvornicu sesije u hibernaciji, prvo se kreira objekt konfiguracije koji se odnosi na stazu konfiguracijske datoteke, a zatim se za tu konfiguraciju kreira tvornica sesije kao što je navedeno u primjeru u nastavku:
Configuration config = new Configuration(); config.addResource("myinstance/configuration.hbm.xml"); config.setProperties( System.getProperties() ); SessionFactory sessions = config.buildSessionFactory();
8. Što su POJO i koji je njihov značaj?
POJO (obični stari Java objekti) su java bean s odgovarajućim getter i setter metodama za svako svojstvo.
Upotreba POJO umjesto jednostavnih java klasa rezultira učinkovitim i dobro konstruiranim kodom.
9. Što je HQL?
HQL je upitni jezik koji se koristi u Hibernateu koji je proširenje SQL. HQL je vrlo učinkovit, jednostavan i fleksibilan upitni jezik za obavljanje raznih vrsta operacija na relacijskim bazama podataka bez pisanja složenih upita za bazu podataka.
10. Kako možemo pozvati pohranjene procedure u hibernaciji?
U stanju hibernacije možemo izvršiti pohranjene procedure pomoću koda kao u nastavku:
11. Što je API kriterija?
Criteria je jednostavan, ali moćan API za hibernaciju koji se koristi za dohvaćanje entiteta kroz sastav objekta kriterija.
12. Koje su prednosti korištenja Hibernate predloška?
Slijedi nekoliko ključnih prednosti korištenja Hibernate predloška:
a. Zatvaranje sesije je automatizirano.
b. Interakcija sa sesijom hibernacije je pojednostavljena.
c. Rukovanje iznimkama je automatizirano.
13. Kako možemo vidjeti SQL generiran hibernacijom na konzoli?
Moramo dodati sljedeće u konfiguracijsku datoteku hibernacije kako bismo omogućili gledanje SQL-a na konzoli u svrhu otklanjanja pogrešaka:
14. Koje su dvije vrste kolekcija u hibernaciji?
Slijede dvije vrste kolekcija u hibernaciji:
- Razvrstana zbirka
- Prikupljanje narudžbi
15. Koja je razlika između metoda session.save() i session.saveOrUpdate() u hibernaciji?
Metoda Sessionsave(). sprema zapis samo ako je jedinstven u odnosu na svoj primarni ključ i neće ga uspjeti umetnuti ako primarni ključ već postoji u tablici.
saveOrUpdate() metoda umeće novi zapis ako je primarni ključ jedinstven i ažurirat će postojeći zapis ako primarni ključ već postoji u tablici.
16. Koje su prednosti hibernacije JDBC?
- Hibernate se može besprijekorno koristiti s bilo kojom vrstom baze podataka kao neovisnom o bazi podataka, dok u slučaju JDBC-a programer mora pisati specifične upite za bazu podataka.
- Koristeći hibernaciju, programer ne mora biti stručnjak za pisanje složenih upita jer HQL pojednostavljuje proces pisanja upita, dok je u slučaju JDBC-a njegov posao programera da piše i podešava upite.
- U slučaju hibernacije, nema potrebe za stvaranjem spremišta veza jer hibernacija automatski upravlja svim vezama, dok u slučaju JDBC-a, potrebno je kreirati spremišta veza.
17. Kako možemo dobiti statistiku hibernacije?
Statistiku hibernacije možemo dobiti korištenjem metode getStatistics() klase SessionFactory kao što je prikazano u nastavku:
SessionFactory.getStatistics()
18. Što je prolazno stanje instance u Hibernateu?
Ako instanca nije povezana ni s jednim postojanim kontekstom i također, nikada nije bila povezana ni s jednim postojanim kontekstom, tada se kaže da je u prolaznom stanju.
19. Kako možemo smanjiti vrijeme radnje pisanja baze podataka u Hibernate?
Hibernate nudi značajku prljave provjere koja se može koristiti za smanjenje vremena pisanja baze podataka. Značajka prljave provjere stanja hibernacije ažurira samo ona polja koja zahtijevaju promjenu, dok ostala ostaju nepromijenjena.
20. Koja je upotreba sučelja za povratni poziv u hibernaciji?
Sučelja za povratni poziv hibernacije korisna su za primanje obavijesti o događajima od objekata. Na primjer, kada se objekt učita ili izbriše, generira se događaj i obavijest se šalje pomoću sučelja povratnog poziva.
21. Kada instanca prelazi u odvojeno stanje u hibernaciji?
Kada je instanca ranije bila povezana s nekim postojanim kontekstom (npr. tablicom) i više nije povezana, poziva se da bude u odvojenom stanju.
22. Koje su četiri ORM razine u hibernaciji?
Slijede četiri ORM razine u hibernaciji:
- Čista relacija
- Mapiranje svjetlosnih objekata
- Mapiranje srednjeg objekta
- Potpuno mapiranje objekata
23. Što je upravljanje transakcijama u hibernaciji? Kako funkcionira?
Upravljanje transakcijama je proces upravljanja skupom izjava ili naredbi. U hibernaciji; upravljanje transakcijama vrši se transakcijskim sučeljem kao što je prikazano u donjem kodu:
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. Koje su dvije metode konfiguracije hibernacije?
Možemo koristiti bilo koju od sljedeće dvije metode konfiguracije hibernacije:
- Konfiguracija temeljena na XML-u (upotrebom datoteke hibernate.cfg.xml)
- Programska konfiguracija (upotrebom logike koda)
25. Koja je zadana usluga predmemorije hibernacije?
Hibernate podržava višestruke usluge predmemorije kao što su EHCache, OSCache, SWARMCache i TreeCache, a zadana usluga predmemorije hibernacije je EHCache.
26. Koje su dvije asocijacije mapiranja koje se koriste u hibernaciji?
U hibernaciji; imamo sljedeće dvije vrste asocijacija preslikavanja između entiteta:
- Udruživanje jedan na jedan
- Udruživanje više prema mnogima
27. Koja je upotreba Hibernate QBC API-ja?
Hibernate Query By Criteria (QBC) API koristi se za stvaranje upita manipulacijom objekata kriterija tijekom izvođenja.
28. Na koliko se načina objekti mogu dohvatiti iz baze podataka u hibernaciji?
Hibernate nudi sljedeća četiri načina za dohvaćanje objekata iz baze podataka:
- Korištenje HQL-a
- Korištenje identifikatora
- Korištenje Criteria API-ja
- Korištenje standardnog SQL-a
29. Kako se primarni ključ kreira korištenjem hibernacije?
Primarni ključ baze podataka naveden je u konfiguracijskoj datoteci hbm.xml. Generator se također može koristiti za određivanje načina na koji se primarni ključ stvara u bazi podataka.
U donjem primjeru, deptId djeluje kao primarni ključ:
30. Kako možemo ponovno spojiti odvojene objekte u Hibernate?
Objekti koji su odvojeni i više nisu povezani s postojanim entitetima mogu se ponovno pripojiti pozivanjem metode session.merge() klase sesije.
31. Koji su različiti načini za onemogućavanje predmemorije druge razine hibernacije?
Predmemorija druge razine hibernacije može se onemogućiti na bilo koji od sljedećih načina:
- Postavljanjem use_second_level_cache na false.
- Korištenjem CACHEMODE.IGNORE
- Upotreba pružatelja predmemorije kao org.hibernate.cache.NoCacheProvider
32. Što su ORM metapodaci?
Sva preslikavanja između klasa i tablica, svojstava i stupaca, Java tipova i SQL tipova itd. definirana su u ORM metapodacima.
33. Koja je zadana tvornica transakcija u hibernaciji?
Uz hibernate 3.2, zadana tvornica transakcija je JDBCTransactionFactory.
34. Koja je uloga JMX-a u hibernaciji?
Java aplikacijama i komponentama u hibernaciji upravlja standardni API pod nazivom JMX API. JMX pruža alate za razvoj učinkovitih i robusnih distribuiranih, web rješenja.
35. Kako možemo vezati tvornicu sesije hibernacije na JNDI?
Tvornica hibernate sesije može se vezati na JNDI unošenjem konfiguracijskih promjena u datoteci hibernate.cfg.
36. Na koliko se načina objekti mogu identificirati u Hibernateu?
Identifikacija objekta može se izvršiti u hibernaciji na sljedeća tri načina:
- Korištenje identiteta objekta: Korištenje == operatora.
- Korištenje jednakosti objekata: Korištenje metode equals().
- Korištenje identiteta baze podataka: Objekti relacijske baze podataka mogu se identificirati ako predstavljaju isti redak.
37. Koje su različite strategije dohvaćanja hibernacije?
Sljedeće strategije dohvaćanja dostupne su u hibernaciji:
- Pridružite se Dohvaćanju
- Skupno dohvaćanje
- Odaberite Dohvaćanje
- Pododaberite Dohvaćanje
38. Kako se vrši mapiranje java objekata s tablicama baze podataka?
Za mapiranje java objekata s tablicama baze podataka, moramo imati imena svojstava Java beana ista kao imena stupaca tablice baze podataka. Zatim se preslikavanje daje u datoteci hbm.xml kako je navedeno u nastavku:
39. Što su izvedena svojstva u hibernaciji?
Izvedena svojstva su ona svojstva koja nisu preslikana ni u jedan stupac tablice baze podataka. Takva se svojstva izračunavaju tijekom izvođenja procjenom bilo kojeg izraza.
40. Što se podrazumijeva pod imenovanim SQL upitom u hibernaciji i kako se koristi?
Imenovani SQL upiti su oni upiti koji su definirani u datoteci za mapiranje i pozivaju se prema potrebi bilo gdje.
Na primjer, možemo napisati SQL upit u našoj XML datoteci mapiranja na sljedeći način:
Tada se ovaj upit može pozvati na sljedeći način:
List students = session.getNamedQuery("studentdetails")
.setString("TomBrady", name)
.setMaxResults(50)
.list();
41. Koja je razlika između metode load() i get() u hibernaciji?
Metode Load() rezultiraju iznimkom ako traženi zapisi nisu pronađeni u bazi podataka, dok metoda get() vraća null kada zapisi prema ID-u nisu pronađeni u bazi podataka.
Dakle, idealno bismo trebali koristiti metodu Load() samo kada smo sigurni u postojanje zapisa prema ID-u.
42. Čemu služi svojstvo verzije u hibernaciji?
Svojstvo verzije koristi se u hibernaciji da bi se znalo je li objekt u prolaznom stanju ili u odvojenom stanju.
43. Što je atributno orijentirano programiranje?
U programiranju orijentiranom na atribute, programer može dodati meta podatke (atribute) u java izvorni kod kako bi dodao više značaja kodu. Za Javu (hibernacija), programiranje orijentirano na atribute omogućeno je motorom koji se zove XDoclet.
44. Čemu služi session.lock() u hibernaciji?
session.lock() metoda klase session koristi se za ponovno pripajanje objekta koji je ranije bio odvojen. Ova metoda ponovnog spajanja ne provjerava sinkronizaciju podataka u bazi podataka tijekom ponovnog spajanja objekta i stoga može dovesti do nedostatka sinkronizacije u podacima.
45. Podržava li hibernate polimorfizam?
Da, hibernacija u potpunosti podržava polimorfizam. Upiti o polimorfizmu i povezivanja polimorfizma podržani su u svim strategijama mapiranja hibernacije.
46. Koja su tri modela nasljeđivanja hibernacije?
Hibernate ima sljedeća tri modela nasljeđivanja:
- Tablice po klasi betona
- Tablica po hijerarhiji klasa
- Tablica po podklasi
47. Kako možemo mapirati klase kao nepromjenjive?
Ako ne želimo da aplikacija ažurira ili briše objekte klase u hibernaciji, klasu možemo učiniti nepromjenjivom postavljanjem mutable=false
48. Što je opći tok hibernacije pomoću RDBMS-a?
Opći tijek hibernacije koji uključuje RDBMS je sljedeći:
- Učitajte konfiguracijsku datoteku i kreirajte objekt konfiguracijske klase.
- Koristeći konfiguracijski objekt, stvorite sessionFactory objekt.
- Od sessionFactory, uzmite jednu sesiju.
- Napravite HQL upit.
- Izvršite HQL upit i dobijte rezultate. Rezultati će biti u obliku liste.
49. Što je mapiranje svjetlosnih objekata?
Mapiranje lakih objekata je jedna od razina ORM kvalitete u kojoj su svi entiteti predstavljeni kao klase i mapiraju se ručno.
50. Koja je razlika između upravljanih asocijacija i hibernacijskih asocijacija?
Upravljane asocijacije odnose se na postojanost upravljanja spremnikom i dvosmjerne su dok su asocijacije hibernacije jednosmjerne.
Ova pitanja za intervju također će vam pomoći u vašem životu
Dobra zbirka qns…
Odlično objašnjenje,,,,
Možete li dodati i pitanja u nastavku
Kako možemo pozvati pohranjene procedure u hibernaciji?
Što je naručeno prikupljanje i sortirano prikupljanje
što je trajno stanje
Kako je konfigurirana prljava provjera
Konfigurirajte sučelje povratnog poziva
Kako odvojiti predmet
što se dogodilo ako odvojim prolazni objekt
objasnite svaku ORM razinu u Hibernateu
Kako omogućiti/onemogućiti cahce prve i druge razine
Kako možemo vezati tvornicu sesije hibernacije na JNDI?
Koja je razlika između metode load() i get() u hibernaciji?
razlika između session.lock() i session.merge()
Kako je klasa mapirana kao nepromjenjiva i zašto
Kako možemo koristiti nova prilagođena sučelja za poboljšanje funkcionalnosti ugrađenih sučelja hibernacije?
Hej admine. Bit će korisno ako dodate ovo pitanje ili važnija mcq pitanja poput pitanja za natjecateljski ispit