Problème invocation EJB via annotation.
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:
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:
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?