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.

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);
     }
}
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
 
@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);
}
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

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?