JPA - Introduzione

Qualsiasi applicazione aziendale esegue operazioni di database archiviando e recuperando grandi quantità di dati. Nonostante tutte le tecnologie disponibili per la gestione dello storage, gli sviluppatori di applicazioni normalmente hanno difficoltà a eseguire le operazioni del database in modo efficiente.

In genere, gli sviluppatori Java utilizzano molto codice o utilizzano il framework proprietario per interagire con il database, mentre utilizzando JPA, il carico di interazione con il database si riduce in modo significativo. Costituisce un ponte tra modelli a oggetti (programma Java) e modelli relazionali (programma database).

Mancate corrispondenze tra modelli relazionali e modelli a oggetti

Gli oggetti relazionali sono rappresentati in un formato tabulare, mentre i modelli a oggetti sono rappresentati in un grafico interconnesso di formato oggetto. Durante la memorizzazione e il recupero di un modello a oggetti da un database relazionale, si verifica una mancata corrispondenza per i seguenti motivi:

  • Granularity : Il modello a oggetti ha una maggiore granularità rispetto al modello relazionale.

  • Subtypes : I sottotipi (significa ereditarietà) non sono supportati da tutti i tipi di database relazionali.

  • Identity : Come il modello a oggetti, il modello relazionale non espone l'identità durante la scrittura dell'uguaglianza.

  • Associations : I modelli relazionali non possono determinare più relazioni mentre esaminano un modello di dominio degli oggetti.

  • Data navigation : La navigazione dei dati tra gli oggetti in una rete di oggetti è diversa in entrambi i modelli.

Cos'è JPA?

Java Persistence API è una raccolta di classi e metodi per archiviare in modo persistente grandi quantità di dati in un database fornito da Oracle Corporation.

Dove usare JPA?

Per ridurre l'onere di scrivere codici per la gestione degli oggetti relazionali, un programmatore segue il framework "JPA Provider", che consente una facile interazione con l'istanza del database. Qui il quadro richiesto è ripreso da JPA.

Storia JPA

Versioni precedenti di EJB, livello di persistenza definito combinato con livello di logica aziendale utilizzando l'interfaccia javax.ejb.EntityBean.

  • Durante l'introduzione di EJB 3.0, il livello di persistenza è stato separato e specificato come JPA 1.0 (Java Persistence API). Le specifiche di questa API sono state rilasciate insieme alle specifiche di JAVA EE5 l'11 maggio 2006 utilizzando JSR 220.

  • JPA 2.0 è stato rilasciato con le specifiche di JAVA EE6 il 10 dicembre 2009 come parte del Java Community Process JSR 317.

  • JPA 2.1 è stato rilasciato con la specifica di JAVA EE7 il 22 aprile 2013 utilizzando JSR 338.

Fornitori di JPA

JPA è un'API open source, quindi vari fornitori aziendali come Oracle, Redhat, Eclipse, ecc. Forniscono nuovi prodotti aggiungendo loro il sapore di persistenza JPA. Alcuni di questi prodotti includono:

Hibernate, Eclipselink, Toplink, Spring Data JPA, etc.