Le 50 principali domande per l'intervista sull'ibernazione (2025)

Ecco le domande e le risposte al colloquio di Hibernate destinate alle matricole e ai candidati esperti per ottenere il lavoro dei loro sogni.


1. Cos'è l'ibernazione?

Hibernate è un popolare framework Java che consente un'efficace mappatura relazionale degli oggetti utilizzando file di configurazione in formato XML. Dopo la mappatura degli oggetti Java sulle tabelle del database, il database viene utilizzato e gestito utilizzando oggetti Java senza scrivere query di database complesse.

Download gratuito del PDF: domande e risposte all'intervista in ibernazione


2. Cos'è l'ORM?

ORM (Object Relational Mapping) è il concetto fondamentale del framework Hibernate che mappa le tabelle del database con oggetti Java e quindi fornisce vari APIserve per eseguire diversi tipi di operazioni sulle tabelle di dati.


3. In che modo le proprietà di una classe vengono mappate alle colonne di una tabella di database in Hibernate?

Le mappature tra le proprietà della classe e le colonne della tabella sono specificate in XML file come nell'esempio seguente:


4. Qual è l'utilizzo dell'interfaccia di configurazione in modalità di ibernazione?

L'interfaccia di configurazione del framework di ibernazione viene utilizzata per configurare l'ibernazione. E' anche abituato bootstrap ibernare. I documenti di mappatura dell'ibernazione vengono individuati utilizzando questa interfaccia.


5. Come possiamo utilizzare nuove interfacce personalizzate per migliorare la funzionalità delle interfacce integrate di ibernazione?

Possiamo utilizzare le interfacce di estensione per aggiungere qualsiasi funzionalità richiesta che non è supportata dalle interfacce integrate.

Domande per l'intervista in ibernazione
Domande per l'intervista in ibernazione

6. Tutti i file di mappatura di hibernate dovrebbero avere l'estensione .hbm.xml per funzionare correttamente?

No, l'estensione .hbm.xml è una convenzione e non un requisito per i nomi dei file di mappatura dell'ibernazione. Possiamo avere qualsiasi estensione per questi file di mappatura.


7. Come creiamo la session factory in ibernazione?

domande di intervista in letargo
ibernare

Per creare una session factory in ibernazione, viene creato prima un oggetto di configurazione che fa riferimento al percorso del file di configurazione e quindi per quella configurazione viene creata la session factory come indicato nell'esempio seguente:

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

8. Cosa sono i POJO e qual è il loro significato?

I POJO (Plain Old Java Objects) sono bean Java con metodi getter e setter adeguati per ciascuna proprietà.
L'uso di POJO invece di semplici classi Java si traduce in un codice efficiente e ben costruito.


9. Cos'è l'HQL?

HQL è il linguaggio di query utilizzato in Hibernate che è un'estensione di SQL. HQL è un linguaggio di query molto efficiente, semplice e flessibile per eseguire vari tipi di operazioni su database relazionali senza scrivere query di database complesse.


10. Come possiamo richiamare le procedure memorizzate in ibernazione?

In ibernazione possiamo eseguire procedure memorizzate utilizzando il codice come di seguito:


11. Cos'è l'API dei criteri?

Criteria è un'API di ibernazione semplice ma potente che viene utilizzata per recuperare entità attraverso la composizione di oggetti criteri.


12. Quali sono i vantaggi dell'utilizzo del modello Hibernate?

Di seguito sono riportati alcuni vantaggi chiave derivanti dall'utilizzo del modello Hibernate:
UN. La chiusura della sessione è automatizzata.
B. L'interazione con la sessione di ibernazione è semplificata.
C. La gestione delle eccezioni è automatizzata.


13. Come possiamo vedere l'SQL generato dall'ibernazione sulla console?

Dobbiamo aggiungere quanto segue nel file di configurazione di ibernazione per abilitare la visualizzazione di SQL sulla console a scopo di debug:


14. Quali sono i due tipi di raccolte in ibernazione?

Di seguito sono riportati i due tipi di raccolte in ibernazione:

  1. Raccolta ordinata
  2. Raccolta ordini


15. Qual è la differenza tra i metodi session.save() e session.saveOrUpdate() in ibernazione?

Metodo Sessionsave() salva un record solo se è univoco rispetto alla sua chiave primaria e non verrà inserito se la chiave primaria esiste già nella tabella.
metodo saveOrUpdate() inserisce un nuovo record se la chiave primaria è univoca e aggiorna un record esistente se la chiave primaria esiste già nella tabella.


16. Quali sono i vantaggi dell'ibernazione JDBC?

  • Hibernate può essere utilizzato senza problemi con qualsiasi tipo di database poiché è indipendente dal database, mentre nel caso di JDBC, lo sviluppatore deve scrivere query specifiche del database.
  • Utilizzando l'ibernazione, lo sviluppatore non deve essere un esperto nella scrittura di query complesse poiché HQL semplifica il processo di scrittura delle query mentre, nel caso di JDBC, è il compito dello sviluppatore scrivere e ottimizzare le query.
  • In caso di ibernazione, non è necessario creare pool di connessioni poiché l'ibernazione esegue automaticamente tutta la gestione delle connessioni mentre in caso di JDBC è necessario creare pool di connessioni.

17. Come possiamo ottenere statistiche sull'ibernazione?

Possiamo ottenere statistiche di ibernazione utilizzando il metodo getStatistics() della classe SessionFactory come mostrato di seguito:

SessionFactory.getStatistics()

18. Cos'è lo stato dell'istanza transitoria in Hibernate?

Se un'istanza non è associata ad alcun contesto persistente e inoltre non è mai stata associata ad alcun contesto persistente, si dice che sia in stato transitorio.


19. Come possiamo ridurre i tempi di scrittura del database in Hibernate?

Hibernate fornisce funzionalità di controllo sporco che possono essere utilizzate per ridurre i tempi di scrittura del database. La funzionalità di controllo sporco dell'ibernazione aggiorna solo i campi che richiedono una modifica, mantenendo gli altri invariati.


20. Qual è l'utilizzo delle interfacce di callback in ibernazione?

Le interfacce di callback dell'ibernazione sono utili per ricevere notifiche di eventi dagli oggetti. Ad esempio, quando un oggetto viene caricato o eliminato, viene generato un evento e viene inviata una notifica utilizzando le interfacce di callback.


21. Quando un'istanza va in stato distaccato in ibernazione?

Quando un'istanza era precedentemente associata ad un contesto persistente (ad esempio una tabella) e non è più associata, viene chiamata in stato distaccato.


22. Quali sono i quattro livelli ORM in ibernazione?

Di seguito sono riportati i quattro livelli ORM in ibernazione:

  • Relazionale Pura
  • Mappatura degli oggetti luminosi
  • Mappatura oggetti medi
  • Mappatura completa degli oggetti

23. Cos'è la gestione delle transazioni in ibernazione? Come funziona?

La gestione delle transazioni è il processo di gestione di una serie di istruzioni o comandi. In letargo; la gestione delle transazioni viene eseguita tramite l'interfaccia delle transazioni, come mostrato nel codice seguente:

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. Quali sono i due metodi di configurazione dell'ibernazione?

Possiamo utilizzare uno dei due metodi seguenti di configurazione dell'ibernazione:

  1. Configurazione basata su XML (utilizzando il file hibernate.cfg.xml)
  2. Configurazione programmatica (utilizzando la logica del codice)

25. Qual è il servizio cache predefinito di ibernazione?

Hibernate supporta più servizi di cache come EHCache, OSCache, SWARMCache e TreeCache e il servizio cache predefinito di hibernate è EHCache.


26. Quali sono le due associazioni di mappatura utilizzate in ibernazione?

In letargo; abbiamo i seguenti due tipi di associazioni di mappatura tra entità:

  1. Associazione uno a uno
  2. Associazione molti-a-molti

27. A cosa serve l'API Hibernate QBC?

L'API Hibernate Query By Criteria (QBC) viene utilizzata per creare query mediante la manipolazione di oggetti criteri in fase di runtime.


28. In quanti modi è possibile recuperare gli oggetti dal database in ibernazione?

Hibernate fornisce i seguenti quattro modi per recuperare oggetti dal database:

  • Utilizzo di HQL
  • Utilizzo dell'identificatore
  • Utilizzo dell'API dei criteri
  • Utilizzando SQL standard

29. Come viene creata la chiave primaria utilizzando l'ibernazione?

La chiave primaria del database è specificata nel file di configurazione hbm.xml. Il generatore può essere utilizzato anche per specificare come viene creata la chiave primaria nel database.
Nell'esempio seguente, deptId funge da chiave primaria:


30. Come possiamo ricollegare eventuali oggetti staccati in Hibernate?

Gli oggetti che sono stati scollegati e non sono più associati ad alcuna entità persistente possono essere ricollegati chiamando il metodo session.merge() della classe session.


31. Quali sono i diversi modi per disabilitare l'ibernazione della cache di secondo livello?

La cache di secondo livello di ibernazione può essere disabilitata utilizzando uno dei seguenti modi:

  • Impostando use_second_level_cache come false.
  • Utilizzando CACHEMODE.IGNORE
  • Utilizzo del provider di cache come org.hibernate.cache.NoCacheProvider

32. Cosa sono i metadati ORM?

Tutta la mappatura tra classi e tabelle, proprietà e colonne, tipi Java e tipi SQL ecc. è definita nei metadati ORM.


33. Qual è il factory di transazione predefinito in ibernazione?

Con hibernate 3.2, la factory di transazione predefinita è JDBCTransactionFactory.


34. Qual è il ruolo di JMX in ibernazione?

Le applicazioni e i componenti Java sono gestiti in ibernazione da un'API standard denominata API JMX. JMX fornisce strumenti per lo sviluppo di soluzioni distribuite, efficienti e robuste basate sul Web.


35. Come possiamo associare la session factory di ibernazione a JNDI?

La session factory di Hibernate può essere associata a JNDI apportando modifiche alla configurazione nel file hibernate.cfg.


36. In quanti modi gli oggetti possono essere identificati in Hibernate?

L'identificazione degli oggetti può essere eseguita in ibernazione nei tre modi seguenti:

  • Utilizzo dell'identità dell'oggetto: utilizzo dell'operatore ==.
  • Utilizzo dell'uguaglianza degli oggetti: utilizzo del metodo equals().
  • Utilizzo dell'identità del database: gli oggetti del database relazionale possono essere identificati se rappresentano la stessa riga.

37. Quali sono le diverse strategie di recupero dell'ibernazione?

In modalità di ibernazione sono disponibili le seguenti strategie di recupero:

  1. Partecipa al recupero
  2. Recupero batch
  3. Seleziona Recupero
  4. Sottoseleziona Recupero

38. Come viene eseguita la mappatura degli oggetti Java con le tabelle del database?

Per mappare gli oggetti Java con le tabelle del database, è necessario che i nomi delle proprietà dei bean Java siano uguali ai nomi delle colonne di una tabella del database. Quindi la mappatura viene fornita nel file hbm.xml come indicato di seguito:


39. Quali sono le proprietà derivate in ibernazione?

Le proprietà derivate sono quelle proprietà che non sono mappate su alcuna colonna di una tabella di database. Tali proprietà vengono calcolate in fase di esecuzione valutando eventuali espressioni.


40. Cosa si intende per query SQL denominata in ibernazione e come viene utilizzata?

Le query SQL denominate sono quelle query definite nel file di mappatura e chiamate come richiesto ovunque.
Ad esempio, possiamo scrivere una query SQL nel nostro file di mappatura XML come segue:

Quindi questa query può essere chiamata come segue:

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

41. Qual è la differenza tra il metodo load() e get() in ibernazione?

Il metodo Load() genera un'eccezione se i record richiesti non vengono trovati nel database mentre il metodo get() restituisce null quando i record rispetto all'ID non vengono trovati nel database.
Quindi, idealmente dovremmo usare il metodo Load() solo quando siamo sicuri dell'esistenza di record rispetto a un ID.


42. Qual è l'uso della proprietà della versione in ibernazione?

La proprietà Version viene utilizzata in modalità di ibernazione per sapere se un oggetto è in stato transitorio o in stato distaccato.


43. Cos'è la programmazione orientata agli attributi?

Nella programmazione orientata agli attributi, uno sviluppatore può aggiungere metadati (attributi) nel codice sorgente Java per aggiungere più significato al codice. Per Java (ibernazione), la programmazione orientata agli attributi è abilitata da un motore chiamato XDoclet.


44. Qual è l'uso di session.lock() in ibernazione?

Il metodo session.lock() della classe session viene utilizzato per ricollegare un oggetto che è stato scollegato in precedenza. Questo metodo di ricollegamento non verifica l'eventuale sincronizzazione dei dati nel database durante il ricollegamento dell'oggetto e pertanto potrebbe portare alla mancanza di sincronizzazione dei dati.


45. L'ibernazione supporta il polimorfismo?

Sì, l'ibernazione supporta completamente il polimorfismo. Le query sui polimorfismi e le associazioni di polimorfismi sono supportate in tutte le strategie di mappatura dell'ibernazione.


46. ​​Quali sono i tre modelli di ereditarietà dell'ibernazione?

Hibernate ha i seguenti tre modelli di ereditarietà:

  1. Tabelle per classe di calcestruzzo
  2. Tabella per gerarchia di classi
  3. Tabella per sottoclasse

47. Come possiamo mappare le classi come immutabili?

Se non vogliamo che un'applicazione aggiorni o cancelli gli oggetti di una classe in ibernazione, possiamo rendere la classe immutabile impostando mutable=false


48. Qual è il flusso generale di ibernazione utilizzando RDBMS?

Il flusso generale di ibernazione che coinvolge RDBMS è il seguente:

  • Carica il file di configurazione e crea l'oggetto della classe di configurazione.
  • Utilizzando l'oggetto di configurazione, crea l'oggetto sessionFactory.
  • Da sessionFactory, ottieni una sessione.
  • Crea query HQL.
  • Esegui la query HQL e ottieni i risultati. I risultati saranno sotto forma di un elenco.

49. Cos'è la mappatura degli oggetti luminosi?

Light Object Mapping è uno dei livelli di qualità ORM in cui tutte le entità sono rappresentate come classi e vengono mappate manualmente.


50. Qual è la differenza tra associazioni gestite e associazioni di ibernazione?

Le associazioni gestite si riferiscono alla persistenza della gestione del contenitore e sono bidirezionali mentre le associazioni di ibernazione sono unidirezionali.


Queste domande del colloquio ti aiuteranno anche nel tuo viva(orale)

Condividi

Commenti

  1. Avatar Bipil Raut -Sviluppatore di software dice:

    Ottima spiegazione,,,,

  2. Potresti aggiungere anche le domande seguenti

    Come possiamo richiamare le procedure memorizzate in ibernazione?
    Che cosa è la raccolta ordinata e la raccolta ordinata
    cos'è lo stato persistente
    Come è configurato il controllo sporco
    Configura l'interfaccia di richiamata
    Come rendere un oggetto distaccato
    cosa succede se stacco l'oggetto transitorio
    spiegare ogni singolo livello ORM in Hibernate
    Come abilitare/disabilitare la cache di primo e secondo livello
    Come possiamo associare la session factory di ibernazione a JNDI?
    Qual è la differenza tra il metodo load() e get() in ibernazione?
    differenza tra session.lock() e session.merge()
    Come una classe viene mappata come immutabile e perché
    Come possiamo utilizzare nuove interfacce personalizzate per migliorare la funzionalità delle interfacce integrate di ibernazione?

    1. Avatar Mehul Patel dice:

      Ehi amministratore, sarà fruttuoso se aggiungi questa domanda o domande più importanti come MCQ per l'esame competitivo

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *