20 domande e risposte più comuni per l'intervista in ibernazione [per matricole ed esperti]

Pubblicato: 2020-12-31

Per molto tempo, Java ha ricoperto una delle prime posizioni nell'elenco dei linguaggi di programmazione più popolari. Naturalmente, essendo un linguaggio di programmazione ad alta priorità preferito dagli sviluppatori di tutto il mondo, Java è accompagnato da una vasta collezione di strumenti, librerie e framework. In questo post parleremo di un popolare framework Java, Hibernate.

Chiunque abbia lavorato o lavori con Java è ben consapevole di Hibernate e dei suoi poteri. Tuttavia, analizziamolo per quelli di voi che hanno appena incontrato questo nome: Hibernate.

Sommario

Cos'è l'ibernazione?

Hibernate è uno strumento ORM (object-relational mapping) progettato esclusivamente per Java. in altre parole, offre un framework per aiutare a mappare un modello orientato agli oggetti su un database relazionale. Hibernate si concentra principalmente sulla mappatura dalle classi Java alle tabelle di database e sulla mappatura dai tipi di dati Java ai tipi di dati SQL .

Hibernate estende anche i servizi di query e recupero dati. È scritto in Java ed è basato su JVM. Hibernate offre implementazioni di riferimento dell'API di persistenza Java che la rende una scelta fantastica per ORM (Object Relational Mapping). Possiamo usare l'API di persistenza Hibernate per le operazioni CRUD

Originariamente, Hibernate è stato progettato per fungere da alternativa più semplice e migliore di EJB2 (Enterprise Java Beans versione 2). Oggi, Hibernate si vanta di essere uno degli strumenti ORM più utilizzati per le applicazioni Java.

È ampiamente utilizzato per lo sviluppo di applicazioni aziendali basate su Java per operazioni di database. Inoltre, Hibernate Persistence API è eccellente per le operazioni CRUD.

Ora che hai una conoscenza di base di Hibernate, conosciamo un po' meglio questo strumento ORM con queste domande sull'intervista a X Hibernate!

Iscriviti ai corsi di sviluppo software delle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Domande e risposte per l'intervista in ibernazione

1. Cos'è ORM?

ORM (Object Relational Mapping) si riferisce a una tecnica di mappatura degli oggetti con i dati archiviati in un database. L'obiettivo di ORM è semplificare la creazione, l'accesso ai dati e la manipolazione dei dati.

2. Cos'è l'APP?

Java Persistence API (JPA) è una specifica che assegna standard e funzionalità agli strumenti ORM. È possibile accedere alle classi e alle interfacce JPA dal pacchetto javax.persistence . Tutte le specifiche JPA sono definite utilizzando le annotazioni nel pacchetto javax.persistence. Il vantaggio dell'utilizzo delle annotazioni JPA è che consentono di scrivere codice indipendente dall'implementazione.

3.Quali sono le importanti annotazioni JPA utilizzate per la mappatura di ibernazione?

Hibernate supporta le annotazioni JPA insieme a molte altre annotazioni a cui puoi accedere tramite il pacchetto org.hibernate.annotations. Ecco sette delle più importanti annotazioni JPA:

javax.persistence.Entity – Viene utilizzato in combinazione con le classi modello per dichiararle come bean di entità.

javax.persistence.Table – Viene utilizzato con i bean di entità per definire il nome della tabella corrispondente in un database.

javax.persistence.Access – Viene utilizzato per specificare il tipo di accesso, il campo o la proprietà. Il valore predefinito per questa annotazione è campo.

javax.persistence.Id – Definisce la chiave primaria nel bean di entità.

javax.persistence.EmbeddedId – Viene utilizzato per specificare una chiave primaria composita nel bean di entità.

javax.persistence.Column – Specifica il nome della colonna nella tabella del database.

javax.persistence.GeneratedValue – Definisce la strategia necessaria per generare la chiave primaria.

4.Definire HQL

HQL sta per Hibernate Query Language. È un linguaggio di query orientato agli oggetti, indipendente dal database.

5.Come eseguiresti la mappatura in ibernazione?

La funzione di mappatura delle associazioni di Hibernate facilita la mappatura supportando le quattro associazioni standard, come quella di un modello di database relazionale:

  • Associazioni one-to-one
  • Associazioni uno-a-molti
  • Associazioni molti-a-uno
  • Molte-a-molte associazioni

Ciascuna di queste associazioni può essere mappata come associazione unidirezionale o bidirezionale.

6. Assegna un nome alle interfacce/componenti principali di Hibernate.

Hibernate ha sei interfacce principali: Configurazione, SessionFactory, Session, Query, Criteri e Transaction.

7.Puoi creare una query SQL in Hibernate?

Sì, puoi creare query SQL in Hibernate. Per creare una query SQL, è necessario utilizzare la seguente sintassi:

Session.createSQLQuery

8.Cos'è il file di configurazione di Hibernate?

Il file di configurazione di sospensione memorizza le configurazioni specifiche del database. Viene utilizzato per inizializzare l'interfaccia SessionFactory. Questo file contiene anche altre informazioni rilevanti come le informazioni sul dialetto che consentono a Hibernate di conoscere il tipo di database e i dettagli del file di mappatura/classe.

9. Cos'è la classe persistente?

In Hibernate, le classi i cui oggetti e istanze sono archiviati in classi di database sono chiamate classi persistenti.

10.Definisci sessione

L'interfaccia Session si trova tra Hibernate e un livello di applicazione Java. Viene utilizzato principalmente per eseguire operazioni di database. Session aiuta a stabilire e mantenere una connessione tra un'app Hibernate e un database. Offre diversi metodi per eseguire operazioni di creazione, lettura, aggiornamento ed eliminazione per oggetti persistenti.

Inoltre, Session agisce come una factory di Query, Criteri e Transaction, il che significa che estende i metodi factory per restituire queste istanze. È possibile utilizzare l'oggetto Session per creare criteri ed eseguire query HQL e query native SQL.

11.Definire SessionFactory.

In Hibernate, SessionFactory è la classe factory utilizzata per accedere agli oggetti Session. Legge i parametri di configurazione di Hibernate e si connette al database per recuperare gli oggetti Session. SessionFactory è essenzialmente una fabbrica di Session e fornisce l'istanza di Session.

Una volta creata la SessionFactory, il suo stato interno viene corretto, rendendolo immutabile. Lo stato interno di SessionFactory contiene i metadati completi di Object/Relational Mapping.

12.Distinguere tra il file di configurazione di Hibernate e il file di mappatura di Hibernate.

Il file di configurazione di ibernazione include le configurazioni specifiche del database e le informazioni su Dialect. Viene utilizzato per inizializzare SessionFactory. È possibile accedere alle credenziali del database o alle informazioni sulle risorse JNDI dal file XML di configurazione di Hibernate.

D'altra parte, il file di mappatura Hibernate viene utilizzato per definire le mappature delle colonne della tabella del database e i campi dei bean di entità. Il file di mappatura è il fulcro di ogni app Hibernate. Contiene una mappatura da un nome di classe POJO a un nome di tabella e nomi di variabili di classe POJO a nomi di colonne di tabelle.

13.Cosa sono i POJO?

POJO è l'acronimo di Plain Old Java Object. In sostanza, i POJO sono java bean progettati con metodi getter e setter standard per le singole proprietà. Il vantaggio dell'utilizzo di POJO invece di classi Java è che puoi scrivere codice pulito, preciso ed efficiente.

14. Denominare i componenti chiave di un oggetto di configurazione Hibernate.

Un oggetto di configurazione Hibernate ha due componenti chiave

  1. Connessione al database gestita da uno o più file di configurazione.
  2. Configurazione della mappatura delle classi che viene utilizzata per stabilire la connessione tra le classi Java e le tabelle del database.

15. Cos'è il dialetto ibernato?

Hibernate Dialect specifica il tipo di database che desideri utilizzare. Consente a Hibernate di conoscere queste informazioni in anticipo per generare istruzioni SQL appropriate che si adattano meglio al tipo di database preferito/specificato.

16.Definire "Memorizza ibernazione nella cache".

La memorizzazione nella cache di ibernazione è il processo di query dei dati per migliorare la velocità e le prestazioni di un'applicazione di ibernazione. L'obiettivo è ridurre al minimo il numero di query del database, con conseguente riduzione del tempo di elaborazione.

EHCache è la funzionalità cache predefinita di Hibernate.

17.Cosa sono le cache di primo e di secondo livello?

In Hibernate, la cache di primo livello si riferisce alla cache di sessione. È la cache obbligatoria attraverso la quale devono passare tutte le richieste. La seconda cache è una cache facoltativa che memorizza nella cache gli oggetti nelle sessioni.

È possibile configurare una cache di secondo livello in base a una pre-raccolta e per classe. Come regola generale, è necessario consultare la cache di primo livello prima di effettuare qualsiasi tentativo di individuare un oggetto nella cache di secondo livello.

18.Spiegare le diverse fasi di un bean oggetto/entità.

Un'istanza di bean oggetto/entità di solito esiste in una qualsiasi delle tre fasi seguenti:

  • Transitorio – In questa fase, un oggetto non persiste né si associa mai ad alcuna sessione. È possibile convertire istanze transitorie in persistenti utilizzando le funzioni save(), persist() o saveOrUpdate(). Per ripristinare un'istanza persistente su transitoria, puoi utilizzare il comando delete().
  • Persistente : un oggetto raggiunge lo stato persistente quando si associa a una sessione univoca. Tutte le istanze restituite dalle funzioni get() o load() sono nello stato persistente.
  • Distaccato : quando un oggetto persistente non si associa ad alcuna sessione, raggiunge lo stato scollegato. È possibile convertire un'istanza separata in persistente tramite le funzioni update(), saveOrUpdate(), lock() o replicate().

19. Qual è lo scopo del controllo sporco in modalità di sospensione?

La funzione di controllo sporco automatico di Hibernate richiama automaticamente l'istruzione di aggiornamento sugli oggetti modificati in una transazione, aiutando così gli sviluppatori a evitare lunghe azioni di scrittura.

Il controllo sporco modifica/aggiorna solo i campi che richiedono un'azione mantenendo intatti gli altri campi. Nel complesso, riduce il tempo di scrittura del database.

20. Definisci "Gestione delle transazioni".

La gestione delle transazioni è una caratteristica del framework Spring. È fondamentalmente il processo di gestione di una serie di comandi/dichiarazioni. In Hibernate, l'interfaccia Transaction esegue la gestione delle transazioni mantenendo l'astrazione dall'implementazione della transazione (JTA, JDBC). È possibile avviare una transazione chiamando il metodo session.beginTransaction() .

Leggi anche: Domande e risposte sull'intervista Java

Conclusione

Per concludere, anche se queste venti domande dell'intervista su Hibernate graffiano la superficie dell'argomento in questione, speriamo che questo ti aiuti a rompere il ghiaccio con Hibernate e a scavare più a fondo!

Ti auguriamo tutto il meglio per iniziare la tua carriera in Java!

Atterra sul lavoro dei tuoi sogni

Candidati ora per un Master in Ingegneria del Software