Cos'è l'APP?
Una JPA (Java Persistence API) è una specifica di Java utilizzata per accedere, gestire e rendere persistenti i dati tra l'oggetto Java e il database relazionale. È considerato un approccio standard per la mappatura relazionale degli oggetti.
JPA può essere visto come un ponte tra modelli di dominio orientati agli oggetti e sistemi di database relazionali. Essendo una specifica, JPA non esegue alcuna operazione da sola. Pertanto, richiede l'implementazione. Pertanto, gli strumenti ORM come Hibernate, TopLink e iBatis implementano le specifiche JPA per la persistenza dei dati.
Cos'è l'ibernazione?
Un Hibernate è un framework Java che viene utilizzato per archiviare gli oggetti Java nel sistema di database relazionale. È uno strumento ORM (Object Relational Mapping) open source, leggero.
Hibernate è un'implementazione di JPA. Pertanto, segue gli standard comuni forniti dall’APP.
Necessità dell'APP
Come abbiamo visto finora, l’APP è una specifica. Fornisce prototipi e funzionalità comuni agli strumenti ORM. Implementando le stesse specifiche, tutti gli strumenti ORM (come Hibernate, TopLink, iBatis) seguono gli standard comuni. In futuro, se vorremo trasferire la nostra applicazione da uno strumento ORM a un altro, potremo farlo facilmente.
JPA rispetto all'ibernazione
APP | Ibernazione |
---|---|
Java Persistence API (JPA) definisce la gestione dei dati relazionali nelle applicazioni Java. | Hibernate è uno strumento ORM (Object-Relational Mapping) utilizzato per salvare lo stato dell'oggetto Java nel database. |
È solo una specifica. Vari strumenti ORM lo implementano per la persistenza dei dati. | È una delle implementazioni JPA utilizzate più frequentemente. |
È definito in javax.persistenza pacchetto. | È definito in org.hibernate pacchetto. |
IL EntityManagerFactory l'interfaccia viene utilizzata per interagire con la factory del gestore entità per l'unità di persistenza. Pertanto, fornisce un gestore di entità. | Utilizza SessionFactory interfaccia per creare istanze di sessione. |
Utilizza Gestore entità interfaccia per creare, leggere ed eliminare operazioni per istanze di classi di entità mappate. Questa interfaccia interagisce con il contesto di persistenza. | Utilizza Sessione interfaccia per creare, leggere ed eliminare operazioni per istanze di classi di entità mappate. Si comporta come un'interfaccia runtime tra un'applicazione Java e Hibernate. |
Utilizza Linguaggio di query di persistenza Java (JPQL) come linguaggio di query orientato agli oggetti per eseguire operazioni sul database. | Utilizza Linguaggio di query ibernato (HQL) come linguaggio di query orientato agli oggetti per eseguire operazioni sul database. |