venerdì 21 ottobre 2011

Appunti di Jabba #2

Verso i session bean. Gli EntityManager.

Stabilito che quindi avremo a che fare con gli entity bean, e che queste sono entry di tabelle relazionali, facciamo un passo oltre e capiamo il modo per arrivare a farci un po' di manipolazione.
La via primaria e' quella di usare dei session bean, che traducono in qualche modo i task che dobbiamo realizzare per il nostro sistema informatico: prenotare un noleggio, effettuare il pagamento, ecc ecc.
Il session bean deve contenere un EntityManager (e' buon uso che lo contenga, diciamo) che si occupi della persistenza (nel DB) dei dati che inseriamo, cancelliamo e modifichiamo.
Gli EntityManager si occupano dei caratteri transazionali delle nostre attivita', che tradotto in soldoni per i piu', significa garantire che accedendo in molti agli stessi dati non ci si pesti i piedi gli uni con gli altri sovrascrivendo modifiche altrui o usufruendo di dati non piu' attuali.
Vediamo, tanto per, la creazione di un nuovo elemento Automobile e la sua ricerca nel DB.

package com.cAR4u.agenzia;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import com.cAR4u.domain.Automobile;

@Stateless

public class AgenziaBean implements AgenziaRemote{
@PersistenceContext
(unitName="cAR$u")

private EntityManager manager;

public void createAutomobile(Automobile auto) {

manager.persist(auto);

}

public Automobile findAutomobile(int pKey) {

return manager.find(Automobile.class, pKey);

}

}

Da usare previa definizione dell'interfaccia opportuna


package com.cAR4u.agenzia;

import javax.ejb.Remote;
import com.cAR4u.domain.Automobile;

@Remote

public interface AgenziaRemote {

public void createAutomobile(Automobile auto);

public Automobile findAutomobile(int id);

}

Sfortunatamente, salendo verso il livello applicativo vero e proprio stiamo tralasciando il mapping della persistenza, mi appunto un'altra volta che dobbiamo farci una tappa presto.

2 commenti:

Rampo ha detto...

Gli insulti anonimi non li accetto, almeno firmatevi. :)

Anonimo ha detto...

No Java no !!!

JL