Bonjour,
j'ai une couche métier utilisant JPA + EJB.
Pour des raisons de simplicité, j'ai créé ce que j'appelle des catalogues. Ceux-ci corresponde à des tables ayant juste une méthode id et title.
J'ai donc créer un EJB Catalog me permettant l'accès au différent catalogue de l'application.
et l'interface de l'EJB
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 @Stateless @LocalBean public class CatalogEJB<T extends Catalog> implements CatalogEJBLocal<T> { @PersistenceContext(unitName="unitName") private EntityManager em; private T obj; /** * Default constructor. */ public CatalogEJB(T o) { obj = o; } public T findById(Long id) { // obj est null return (T) em.find(obj.getClass(), id); } }
Le problème est que j'ai besoin d'appeler le contructeur qui initialise obj en lui passant l'objet souhaité. Seulement je ne sais pas comment faire cela avec l'annotation @EJB
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 @Local public interface CatalogEJBLocal<T extends Catalog> { public T findById(Long id); public List<T> findByTitle(String title); public List<T> findAll(); public T saveOrUpdate(T objectToSave); public boolean delete(T objectToDelete); public List<T> saveOrUpdate(List<T> objectsToSave); }
J'ai pensé récréer une annotation @EJBC calquée sur @EJB qui me permetrait en paramètre de passé l'objet et d'appeler le bon constructeur mais je ne sais pas trop comment procéder .
Quelqu'un à-t-il une idée?
Partager