Top 50 Hibernate-interviewvragen (2025)
Hier zijn Hibernate-interviewvragen en antwoorden voor zowel eerstejaars als ervaren kandidaten om hun droombaan te krijgen.
1. Wat is Hibernate?
Hibernate is een populair Java-framework dat een efficiënte Object Relational mapping mogelijk maakt met behulp van configuratiebestanden in XML-formaat. Nadat Java-objecten zijn toegewezen aan databasetabellen, wordt de database gebruikt en verwerkt met behulp van Java-objecten zonder complexe databasequery's te schrijven.
Gratis pdf-download: vragen en antwoorden over sollicitatiegesprekken in de slaapstand
2. Wat is ORM?
ORM (Object Relational Mapping) is het fundamentele concept van het Hibernate-framework dat databasetabellen met Java-objecten in kaart brengt en vervolgens verschillende API's om verschillende soorten bewerkingen op de gegevenstabellen uit te voeren.
3. Hoe worden eigenschappen van een klasse toegewezen aan de kolommen van een databasetabel in Hibernate?
Toewijzingen tussen klasse-eigenschappen en tabelkolommen worden gespecificeerd in XML bestand zoals in het onderstaande voorbeeld:
4. Wat is het gebruik van de configuratie-interface in de slaapstand?
De configuratie-interface van het slaapstandframework wordt gebruikt om de slaapstand te configureren. Het is ook gewend bootstrap overwinteren. Mapping-documenten van de slaapstand worden via deze interface gelokaliseerd.
5. Hoe kunnen we nieuwe aangepaste interfaces gebruiken om de functionaliteit van ingebouwde hibernate-interfaces te verbeteren?
We kunnen uitbreidingsinterfaces gebruiken om elke vereiste functionaliteit toe te voegen die niet wordt ondersteund door ingebouwde interfaces.
6. Moeten alle toewijzingsbestanden van de slaapstand de extensie .hbm.xml hebben om goed te kunnen werken?
Nee, de extensie .hbm.xml is een conventie en geen vereiste voor bestandsnamen in de slaapstand. We kunnen elke extensie voor deze kaartbestanden hebben.
7. Hoe creëren we een sessiefabriek in de slaapstand?
Om een sessiefabriek in de slaapstand te maken, wordt eerst een configuratieobject gemaakt dat verwijst naar het pad van het configuratiebestand en vervolgens wordt voor die configuratie een sessiefabriek gemaakt zoals weergegeven in het onderstaande voorbeeld:
Configuration config = new Configuration(); config.addResource("myinstance/configuration.hbm.xml"); config.setProperties( System.getProperties() ); SessionFactory sessions = config.buildSessionFactory();
8. Wat zijn POJO's en wat is hun betekenis?
POJO's (Plain Old Java Objects) zijn Java-bonen met de juiste getter- en setter-methoden voor elke eigenschap.
Het gebruik van POJO's in plaats van eenvoudige Java-klassen resulteert in een efficiënte en goed opgebouwde code.
9. Wat is HQL?
HQL is de querytaal die wordt gebruikt in Hibernate en een uitbreiding is van SQL. HQL is een zeer efficiënte, eenvoudige en flexibele querytaal om verschillende soorten bewerkingen op relationele databases uit te voeren zonder complexe databasequery's te schrijven.
10. Hoe kunnen we opgeslagen procedures in de slaapstand oproepen?
In de slaapstand kunnen we opgeslagen procedures uitvoeren met behulp van code zoals hieronder:
11. Wat is de criteria-API?
Criteria is een eenvoudige maar krachtige API voor slaapstand die wordt gebruikt om entiteiten op te halen via de compositie van criteria-objecten.
12. Wat zijn de voordelen van het gebruik van de Hibernate-sjabloon?
Hieronder volgen enkele belangrijke voordelen van het gebruik van de Hibernate-sjabloon:
A. Het sluiten van sessies is geautomatiseerd.
B. Interactie met de slaapstandsessie is vereenvoudigd.
C. De afhandeling van uitzonderingen is geautomatiseerd.
13. Hoe kunnen we in de slaapstand gegenereerde SQL op de console zien?
We moeten het volgende toevoegen aan het slaapstandconfiguratiebestand om het bekijken van SQL op de console mogelijk te maken voor foutopsporingsdoeleinden:
14. Wat zijn de twee soorten collecties in de slaapstand?
Hieronder volgen de twee soorten collecties in de slaapstand:
- Gesorteerde collectie
- Bestelling verzamelen
15. Wat is het verschil tussen de methoden session.save() en session.saveOrUpdate() in de slaapstand?
Sessionsave()-methode slaat een record alleen op als deze uniek is ten opzichte van de primaire sleutel en kan niet worden ingevoegd als de primaire sleutel al in de tabel bestaat.
saveOrUpdate()-methode voegt een nieuw record in als de primaire sleutel uniek is en werkt een bestaand record bij als de primaire sleutel al in de tabel bestaat.
16. Wat de voordelen zijn van een winterslaap JDBC?
- Hibernate kan naadloos worden gebruikt met elk type database omdat de database onafhankelijk is, terwijl in het geval van JDBC de ontwikkelaar databasespecifieke query's moet schrijven.
- Door gebruik te maken van de slaapstand hoeft de ontwikkelaar geen expert te zijn in het schrijven van complexe queries, aangezien HQL het schrijfproces voor queries vereenvoudigt, terwijl het in het geval van JDBC de taak van de ontwikkelaar is om queries te schrijven en af te stemmen.
- In het geval van de slaapstand is het niet nodig om verbindingspools te maken, aangezien de slaapstand alle verbindingsafhandeling automatisch uitvoert, terwijl in het geval van JDBC verbindingspools moeten worden gemaakt.
17. Hoe kunnen we winterslaapstatistieken verkrijgen?
We kunnen slaapstandstatistieken verkrijgen met behulp van de getStatistics()-methode van de SessionFactory-klasse, zoals hieronder weergegeven:
SessionFactory.getStatistics()
18. Wat is de tijdelijke instantiestatus in Hibernate?
Als een instantie niet aan een persistente context is gekoppeld en ook nooit aan een persistente context is gekoppeld, wordt er gezegd dat deze zich in een tijdelijke status bevindt.
19. Hoe kunnen we de actietijden voor het schrijven van databases in Hibernate verkorten?
Hibernate biedt een dirty checking-functie die kan worden gebruikt om de schrijftijden van databases te verkorten. De functie voor vuile controle van de slaapstand werkt alleen die velden bij die een wijziging vereisen, terwijl andere ongewijzigd blijven.
20. Wat is het gebruik van callback-interfaces in de slaapstand?
Callback-interfaces van de slaapstand zijn handig bij het ontvangen van gebeurtenismeldingen van objecten. Wanneer een object bijvoorbeeld wordt geladen of verwijderd, wordt er een gebeurtenis gegenereerd en wordt er een melding verzonden via callback-interfaces.
21. Wanneer een instantie in een vrijstaande toestand in de slaapstand gaat?
Wanneer een instantie eerder was gekoppeld aan een persistente context (bijvoorbeeld een tabel) en niet langer is gekoppeld, wordt deze aangeroepen om zich in een vrijstaande status te bevinden.
22. Wat zijn de vier ORM-niveaus in de slaapstand?
Hieronder volgen de vier ORM-niveaus in de slaapstand:
- Puur relationeel
- In kaart brengen van lichte objecten
- Middelgrote objecttoewijzing
- Volledige objecttoewijzing
23. Wat is transactiebeheer in de slaapstand? Hoe het werkt?
Transactiebeheer is het proces van het beheren van een reeks instructies of opdrachten. In winterslaap; transactiebeheer wordt gedaan via de transactie-interface, zoals weergegeven in onderstaande code:
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. Wat zijn de twee methoden voor de slaapstandconfiguratie?
We kunnen een van de volgende twee methoden voor de slaapstandconfiguratie gebruiken:
- Op XML gebaseerde configuratie (met behulp van het bestand hibernate.cfg.xml)
- Programmatische configuratie (met behulp van codelogica)
25. Wat is de standaard cacheservice van Hibernate?
Hibernate ondersteunt meerdere cacheservices zoals EHCache, OSCache, SWARMCache en TreeCache en de standaardcacheservice van hibernate is EHCache.
26. Wat zijn de twee kaartassociaties die in de slaapstand worden gebruikt?
In winterslaap; we hebben de volgende twee soorten mapping-associaties tussen entiteiten:
- Eén-op-één vereniging
- Veel-op-veel-associatie
27. Wat is het gebruik van de Hibernate QBC API?
De Hibernate Query By Criteria (QBC) API wordt gebruikt om query's te maken door criteria-objecten tijdens runtime te manipuleren.
28. Op hoeveel manieren kunnen objecten uit de database in de slaapstand worden gehaald?
Hibernate biedt de volgende vier manieren om objecten uit de database op te halen:
- HQL gebruiken
- Met behulp van identificatie
- Criteria-API gebruiken
- Standaard SQL gebruiken
29. Hoe wordt de primaire sleutel gemaakt met behulp van de slaapstand?
De primaire databasesleutel wordt opgegeven in het configuratiebestand hbm.xml. Generator kan ook worden gebruikt om aan te geven hoe de primaire sleutel in de database wordt aangemaakt.
In het onderstaande voorbeeld fungeert deptId als primaire sleutel:
30. Hoe kunnen we losse objecten in Hibernate opnieuw koppelen?
Objecten die zijn losgemaakt en niet langer zijn gekoppeld aan persistente entiteiten, kunnen opnieuw worden gekoppeld door de session.merge()-methode van de sessieklasse aan te roepen.
31. Wat zijn verschillende manieren om de cache op het tweede niveau in de slaapstand uit te schakelen?
De hibernate-cache op het tweede niveau kan op een van de volgende manieren worden uitgeschakeld:
- Door use_second_level_cache in te stellen als false.
- Door CACHEMODE.IGNORE te gebruiken
- Cacheprovider gebruiken als org.hibernate.cache.NoCacheProvider
32. Wat zijn ORM-metagegevens?
Alle toewijzingen tussen klassen en tabellen, eigenschappen en kolommen, Java-typen en SQL-typen enz. worden gedefinieerd in ORM-metagegevens.
33. Welke is de standaardtransactiefabriek in de slaapstand?
Met slaapstand 3.2 is de standaardtransactiefabriek JDBCTransactionFactory.
34. Wat is de rol van JMX in de slaapstand?
Java-applicaties en -componenten worden in de slaapstand beheerd door een standaard API genaamd JMX API. JMX biedt tools voor de ontwikkeling van efficiënte en robuuste gedistribueerde, webgebaseerde oplossingen.
35. Hoe kunnen we de Hibernate Session Factory aan JNDI binden?
De Hibernate Session Factory kan aan JNDI worden gekoppeld door configuratiewijzigingen aan te brengen in het bestand hibernate.cfg.
36. Op hoeveel manieren kunnen objecten in Hibernate worden geïdentificeerd?
Objectidentificatie kan in de slaapstand op de volgende drie manieren worden uitgevoerd:
- Objectidentiteit gebruiken: Gebruik de operator ==.
- Objectgelijkheid gebruiken: De methode equals() gebruiken.
- Database-identiteit gebruiken: relationele databaseobjecten kunnen worden geïdentificeerd als ze dezelfde rij vertegenwoordigen.
37. Welke verschillende ophaalstrategieën zijn er voor de winterslaap?
De volgende ophaalstrategieën zijn beschikbaar in de slaapstand:
- Doe mee met ophalen
- Batch ophalen
- Selecteer Ophalen
- Selecteer vervolgens Ophalen
38. Hoe wordt het in kaart brengen van Java-objecten gedaan met databasetabellen?
Om Java-objecten toe te wijzen aan databasetabellen, moeten de eigenschappennamen van Java Beans dezelfde zijn als de kolomnamen van een databasetabel. Vervolgens wordt de mapping weergegeven in het hbm.xml-bestand, zoals hieronder weergegeven:
39. Wat zijn afgeleide eigenschappen in de winterslaap?
Afgeleide eigenschappen zijn eigenschappen die niet zijn toegewezen aan kolommen van een databasetabel. Dergelijke eigenschappen worden tijdens runtime berekend door evaluatie van eventuele expressies.
40. Wat wordt bedoeld met een benoemde SQL-query in de slaapstand en hoe wordt deze gebruikt?
Benoemde SQL-query's zijn die query's die in het toewijzingsbestand zijn gedefinieerd en overal waar nodig worden aangeroepen.
We kunnen bijvoorbeeld als volgt een SQL-query in ons XML-toewijzingsbestand schrijven:
Dan kan deze query als volgt worden aangeroepen:
List students = session.getNamedQuery("studentdetails")
.setString("TomBrady", name)
.setMaxResults(50)
.list();
41. Wat is het verschil tussen de methode load() en get() in de slaapstand?
De methoden Load() resulteren in een uitzondering als de vereiste records niet in de database worden gevonden, terwijl de methode get() null retourneert wanneer records met de id niet in de database worden gevonden.
Idealiter zouden we de methode Load() dus alleen moeten gebruiken als we zeker weten dat er records met een ID bestaan.
42. Wat is het nut van de versie-eigenschap in de slaapstand?
De eigenschap Version wordt in de slaapstand gebruikt om te weten of een object zich in een tijdelijke of vrijstaande status bevindt.
43. Wat is attribuutgeoriënteerd programmeren?
Bij attribuutgeoriënteerd programmeren kan een ontwikkelaar metagegevens (attributen) toevoegen aan de Java-broncode om meer betekenis aan de code toe te voegen. Voor Java (slaapstand) wordt attribuutgeoriënteerd programmeren mogelijk gemaakt door een engine genaamd XDoclet.
44. Wat is het nut van session.lock() in de slaapstand?
session.lock() methode van sessieklasse wordt gebruikt om een object dat eerder is losgemaakt opnieuw te koppelen. Deze methode van opnieuw koppelen controleert niet op gegevenssynchronisatie in de database terwijl het object opnieuw wordt gekoppeld en kan daarom leiden tot een gebrek aan synchronisatie van gegevens.
45. Ondersteunt de slaapstand polymorfisme?
Ja, de slaapstand ondersteunt polymorfisme volledig. Polymorfisme-query's en polymorfisme-associaties worden ondersteund in alle kaartstrategieën van de winterslaap.
46. Wat zijn de drie overervingsmodellen van winterslaap?
Hibernate heeft de volgende drie overervingsmodellen:
- Tabellen per betonklasse
- Tabel per klassenhiërarchie
- Tabel per subklasse
47. Hoe kunnen we de klassen als onveranderlijk in kaart brengen?
Als we niet willen dat een applicatie objecten van een klasse in de slaapstand bijwerkt of verwijdert, kunnen we de klasse onveranderlijk maken door mutable=false in te stellen
48. Wat is de algemene slaapstandstroom met behulp van RDBMS?
De algemene slaapstandstroom waarbij RDBMS betrokken is, is als volgt:
- Laad het configuratiebestand en maak een object van de configuratieklasse.
- Maak met behulp van het configuratieobject een sessionFactory-object.
- Ontvang één sessie van sessionFactory.
- HQL-query maken.
- Voer de HQL-query uit en ontvang de resultaten. De resultaten hebben de vorm van een lijst.
49. Wat is het in kaart brengen van lichtobjecten?
Light Object Mapping is een van de niveaus van ORM-kwaliteit waarin alle entiteiten worden weergegeven als klassen en handmatig in kaart worden gebracht.
50. Wat is het verschil tussen beheerde koppelingen en overwinterende koppelingen?
Beheerde associaties hebben betrekking op de persistentie van containerbeheer en zijn bidirectioneel, terwijl winterslaapassociaties unidirectioneel zijn.
Deze interviewvragen zullen ook helpen bij je viva (oralen)
Goede verzameling qns…
Uitstekende uitleg,,,,
Kunt u de onderstaande vragen ook toevoegen?
Hoe kunnen we opgeslagen procedures in de slaapstand oproepen?
Wat is de bestelde verzameling en de gesorteerde verzameling
wat is een persistente toestand
Hoe dirty checking is geconfigureerd
Configureer de terugbelinterface
Hoe maak je een object los?
wat gebeurde er als ik een transiant object losmaak
leg elk ORM-niveau in Hibernate uit
Hoe cahce op het eerste en tweede niveau in-/uit te schakelen
Hoe kunnen we de Hibernate Session Factory aan JNDI binden?
Wat is het verschil tussen de methode load() en get() in de slaapstand?
verschil tussen session.lock() en session.merge()
Hoe een klasse als onveranderlijk in kaart wordt gebracht en waarom
Hoe kunnen we nieuwe aangepaste interfaces gebruiken om de functionaliteit van ingebouwde interfaces van de slaapstand te verbeteren?
Hallo beheerder. Het zal vruchtbaar zijn als je deze vraag of belangrijkere MCQ-achtige vragen toevoegt voor een competitief examen