Differenza tra JPA e ibernazione

Differenza tra JPA e ibernazione
Differenza tra JPA e ibernazione

Video: Differenza tra JPA e ibernazione

Video: Differenza tra JPA e ibernazione
Video: Differenza tra una tariffa monoraria e una bioraria 2024, Dicembre
Anonim

JPA vs Hibernate

Quasi tutte le applicazioni aziendali devono accedere regolarmente ai database relazionali. Ma un problema affrontato con le tecnologie precedenti (come JDBC) era il disadattamento di impedenza (differenza tra tecnologie orientate agli oggetti e tecnologie relazionali). Una soluzione a questo problema è stata introdotta attraverso l'introduzione di un livello astratto chiamato livello di persistenza, che incapsula l'accesso al database dalla logica aziendale. JPA (Java Persistence API) è un framework dedicato alla gestione dei dati relazionali (utilizzando il livello di persistenza) nelle applicazioni Java. Esistono molte implementazioni di fornitori di JPA utilizzate all'interno della comunità di sviluppatori Java. Hibernate è l'implementazione più popolare di JPA (DataNucleus, EclipseLink e OpenJPA sono alcuni altri). La versione più recente di JPA (JPA 2.0) è completamente supportata da Hibernate 3.5, che è stato rilasciato a marzo 2010.

Cos'è l'APP?

JPA è un framework per la gestione dei dati relazionali per Java. Può essere utilizzato con applicazioni che utilizzano JSE (Java Platform, Standard Edition) o JEE (Java Platform, Enterprise Edition). La sua versione attuale è JPA 2.0, che è stata rilasciata il 10 dicembre 2009. JPA ha sostituito i bean di entità EJB 2.0 e EJB 1.1 (che sono stati pesantemente criticati per essere un peso massimo dalla comunità degli sviluppatori Java). Sebbene i bean di entità (in EJB) fornissero oggetti di persistenza, molti sviluppatori erano abituati a utilizzare invece oggetti relativamente leggeri offerti da DAO (Data Access Objects) e altri framework simili. Di conseguenza, JPA è stato introdotto e ha catturato molte delle caratteristiche ordinate dei framework sopra menzionati.

La persistenza come descritto in JPA copre l'API (definita in javax.persistence), JPQL (Java Platform, Enterprise Edition) e metadati richiesti per gli oggetti relazionali. Lo stato di un'entità di persistenza è in genere persistente in una tabella. Le istanze di un'entità corrispondono a righe della tabella del database relazionale. I metadati vengono utilizzati per esprimere le relazioni tra le entità. Le annotazioni o i file descrittori XML separati (distribuiti con l'applicazione) vengono utilizzati per specificare i metadati nelle classi di entità. JPQL, che è simile alle query SQL, viene utilizzato per interrogare le entità memorizzate.

Cos'è l'ibernazione?

Hibernate è un framework che può essere utilizzato per la mappatura relazionale di oggetti destinata al linguaggio di programmazione Java. Più specificamente, è una libreria ORM (mappatura relazionale di oggetti) che può essere utilizzata per mappare il modello relazionale di oggetti in un modello relazionale convenzionale. In parole povere, crea una mappatura tra classi e tabelle Java in database relazionali, anche tra tipi di dati Java e SQL. Hibernate può essere utilizzato anche per eseguire query e recuperare dati generando chiamate SQL. Pertanto, il programmatore è sollevato dalla gestione manuale dei set di risultati e dalla conversione degli oggetti. Hibernate è rilasciato come framework gratuito e open source distribuito sotto licenza GNU. Un'implementazione per l'API JPA è fornita in Hibernate 3.2 e versioni successive. Gavin King è il fondatore di Hibernate.

Qual è la differenza tra JPA e Hibernate?

JPA è un framework per la gestione dei dati relazionali nelle applicazioni Java, mentre Hibernate è un'implementazione specifica di JPA (quindi idealmente, JPA e Hibernate non possono essere confrontati direttamente). In altre parole, Hibernate è uno dei framework più popolari che implementa JPA. Hibernate implementa JPA tramite le librerie Hibernate Annotation e EntityManager implementate sulle librerie Hibernate Core. Sia EntityManager che Annotations seguono il ciclo di vita di Hibernate. La versione più recente di JPA (JPA 2.0) è completamente supportata da Hibernate 3.5. JPA ha il vantaggio di avere un'interfaccia standardizzata, quindi la comunità degli sviluppatori avrà più familiarità con essa rispetto a Hibernate. D' altra parte, le API Hibernate native possono essere considerate più potenti perché le sue funzionalità sono un superset di quelle di JPA.

Consigliato: