Entity Manager senza usare un Application Server JAVA EE

Ora vedremo come avvalerci dei servizi di un Entity Manager senza usare un Application Server JAVA EE. 
Questo significa che si potrà utilitzzare un E.M. ad esempio in un'applicazione java realizzata per la console o una swing application.
L'articolo è rivolto a chi ha già qualche nozione di JAVAEE. Si danno per assodati i concetti di dipendenza maven, Persistence Unit, Entity, transazione Entity Manager e Factory.

Punto primo, se utilizziamo Maven va inserita la dipendenza necessaria reperibile al link 

https://mvnrepository.com/artifact/org.eclipse.persistence/eclipselink/2.5.0

        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>eclipselink</artifactId>
            <version>2.5.2</version>
        </dependency>


Passiamo quindi al codice:

Prima gli import, come sempre:

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;


//L'ovvia classe pubblica
public class App {

    private static EntityManagerFactory emf;
    private static EntityManager em;

//Il main
public static void main(String[] args) {
    try {
        emf = Persistence.createEntityManagerFactory("NOME_PERSISTANCE_UNIT");
        em = emf.createEntityManager();
    } catch (Exception ex) {
            //gestione eccezione
    } 

//Ora possiamo usare il nostro Entity Manager, ad esempio per creare una TypedQuery

TypedQuery<Atleta> queryAtleti = em.createNamedQuery("Atleta.findAll", Atleta.class);

        List<Atleta> listaAtleti = queryAtleti.getResultList();

//Oppure per modificare un record già presente internamente ad una transazione


em.getTransaction().begin();
   if (listaAtleti .size() > 0) {
       for (Atleta a : listaAtleti ) {
       a.setUsername(telegramUsername);
       em.persist(a);
       listaNomi += a.getNome() + "\n";
   }
em.getTransaction().commit();

}

Commenti

Post popolari in questo blog

Da un progetto Java Maven ad un jar "eseguibile" che comprende tutto quanto necessario alla sua esecuzione.

Git: branch e merge, comandi essenziali

Log4j - configurazione ed utilizzo