JPA - Architettura

Java Persistence API è un'origine per archiviare entità aziendali come entità relazionali. Mostra come definire un PLAIN OLD JAVA OBJECT (POJO) come entità e come gestire entità con relazioni.

Architettura a livello di classe

L'immagine seguente mostra l'architettura a livello di classe di JPA. Mostra le classi e le interfacce principali di JPA.

La tabella seguente descrive ciascuna delle unità mostrate nell'architettura sopra.

Unità Descrizione
EntityManagerFactory Questa è una classe factory di EntityManager. Crea e gestisce più istanze di EntityManager.
EntityManager È un'interfaccia, gestisce le operazioni di persistenza sugli oggetti. Funziona come factory per l'istanza di Query.
Entity Le entità sono gli oggetti di persistenza, archiviati come record nel database.
EntityTransaction Ha una relazione uno a uno con EntityManager. Per ogni EntityManager, le operazioni vengono gestite dalla classe EntityTransaction.
Persistence Questa classe contiene metodi statici per ottenere l'istanza di EntityManagerFactory.
Query Questa interfaccia viene implementata da ciascun fornitore JPA per ottenere oggetti relazionali che soddisfano i criteri.

Le classi e le interfacce di cui sopra vengono utilizzate per memorizzare le entità in un database come record. Aiutano i programmatori riducendo i loro sforzi per scrivere codici per archiviare dati in un database in modo che possano concentrarsi su attività più importanti come la scrittura di codici per mappare le classi con le tabelle del database.

Relazioni di classe JPA

Nell'architettura di cui sopra, le relazioni tra le classi e le interfacce appartengono al pacchetto javax.persistence. Il diagramma seguente mostra la relazione tra di loro.

  • La relazione tra EntityManagerFactory e EntityManager è one-to-many. È una classe factory per le istanze di EntityManager.

  • La relazione tra EntityManager e EntityTransaction è one-to-one. Per ogni operazione EntityManager, esiste un'istanza EntityTransaction.

  • La relazione tra EntityManager e Query è one-to-many. Molte query possono essere eseguite utilizzando un'istanza di EntityManager.

  • La relazione tra EntityManager ed Entity è one-to-many. Un'istanza di EntityManager può gestire più entità.