Bonjour,

Désolé pour le titre pas clair, mais je ne voyais pas comment résumer le truc.

Je connais le SE mais pas le EE, et je suis sur un projet d'appli EJB/JPA. Donc je découvre tout ça, dans l'ordre, JPA d'abord, et EJB après.

Pour faire les actions de type CRUD, sans connaitre les EJB, je me suis fait des fonctions statiques paramétrées du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
	public static <T> T create(T elt)
	{
		EntityManager em = PersistenceManager.getEntityManager();
		EntityTransaction tx = em.getTransaction();
 
		tx.begin();
		try
		{
			em.persist(elt);
			tx.commit();
		}
		catch (Exception e)
		{
			e.printStackTrace();
			if (tx != null)
			{
				tx.rollback();
			}
		}
 
		return elt;
	}
Du coup, il suffit d'appeller CrudUtils.create(elt); et ça marche.

Aujourd'hui, je suis tombé sur l'article d'un blog qui faisait plus ou moins la même chose, mais en parametrant la classe, et en indiquant qu'il fallait étendre cette classe pour chaque DAO.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
@Stateless
public class CRUDBean<T> implements CRUDLocal<T> {
 
    @PersistenceContext
    EntityManager em;
 
    public T add(T entity) {
        em.persist(entity);
        return entity;
    }
...
}
Sachant que je ne connais pas du tout les EJB, est ce que qqun pourrait me dire si la méthode par héritage est la seule correcte, et m'expliquer un peu pourquoi ?

Merci d'avance