|
|
|
|
TUTORIEL JAVA |
|
|
|
La persistance Objet en Java : aborder EJB3 |
Nouvelle version du standard Entreprise JavaBeans, EJB3 révise largement les techniques de EJB2. Approche de l'aspect persistance du standard, avec un exemple de code.
(19/07/2006) |
|
En pratique
L'apport des Annotations par Java 5 simplifie grandement la déclaration d'une classe persistante : il suffit d'inclure le paquetage Entity au fichier de la classe, et de lui donner l'annotation @Entity.
import javax.persistence.Entity;
@Entity
public class Produit {
(...)
La classe devient dès lors une entité aux yeux des EJB. Pour la rendre unique, il faudra déclarer un identifiant sur une méthode de récupération de la clef primaire correspondante, par le biais de l'annotation @Id (ici, on préciser avec generate que la clef est auto-incrémentée).
import javax.persistence.Entity;
@Entity
public class Produit {
@Id(generate = GeneratorType.AUTO)
public int getId() { return id; }
(...)
D'autres annotations possibles sont @GeneratedValue, pour laisser l'application générer une valeur de clef, @Table pour définir le nom de la table à utiliser, ou encore @Basic pour définir le type d'un champ persistant.
À partir de là, on peut travailler normalement avec la classe, pour toute classe Java.
Produit monProduit = new Produit();
monProduit.setName("Web 2.0");
Pour gérer la persistance, il faudra faire appel à la classe EntityManager, obtenue à partir de l'EntityManagerFactory. Il faudra par ailleurs gérer les transactions pour le stockage.
Ainsi, on pourra faire persister notre objet.
EntityManagerFactory emf = null;
EntityManager em = emf.getEntityManager();
EntityTransaction et = em.getTransaction();
et.begin();
em.persist(monProduit);
et.commit();
em.close();
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
Pour récupérer la donnée persistée, il suffit de faire appel à son id. On pourra égalament passer par une requête si l'on veut travailler avec les propriétés de l'objet.
Produit monSecondProduit = em.find(Produit.class, monProduit.getId());
|
|
|
|
|
|
Quand achetez-vous le plus en ligne ? |
|
|
|
|
|
|
|
|