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)
<< 1. EJB3 par la théorie | 2. EJB3 par la pratique

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.
  1. import javax.persistence.Entity;
  2.  
  3. @Entity
  4. public class Produit {
  5.   (...)
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).
  1. import javax.persistence.Entity;
  2.  
  3. @Entity
  4. public class Produit {
  5.   @Id(generate = GeneratorType.AUTO)
  6.   public int getId() { return id; }
  7.   (...)
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.
  1. Produit monProduit = new Produit();
  2. 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.
  1. EntityManagerFactory emf = null;
  2. EntityManager em = emf.getEntityManager();
  3. EntityTransaction et = em.getTransaction();
  4. et.begin();
  5. em.persist(monProduit);
  6. et.commit();
  7. 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.
  1. Produit monSecondProduit = em.find(Produit.class, monProduit.getId());

<< 1. EJB3 par la théorie | 2. EJB3 par la pratique
 
Xavier Borderie, JDN Développeurs
 
Accueil | Haut de page
 
 





Quand achetez-vous le plus en ligne ?
Du lundi au vendredi
Le samedi
Le dimanche

Tous les sondages