Bonjour,

Simple question à laquelle je n'ai pas encore eu de réponse : si j'ai un EJB qui implémente une interface, elle-même étendant une autre interface, dois-je mettre @Local/@Remote sur toute la hiérarchie ou seulement sur l'interface directement implémentée par mon EJB ?

Un peu de code pour illustrer :

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
23
24
25
26
27
28
 
@Stateless
public class AckDaoJpa extends GenericModelDaoJpa<Ack, Integer>
    implements AckDao {
 
// Implémentation des méthodes spécifiques à ce DAO.
}
 
public abstract class GenericModelDaoJpa<T, PK extends Serializable>
    implements GenericDao<T, PK> {
 
    @PersistenceContext(unitName="myUnit")
    private EntityManager entityManager;
 
// Implémentation générique des méthodes communes à tous les DAO's.
} 
 
@Local
public interface GenericDao<T, PK extends Serializable> {
 
// Méthodes communes à tous mes DAO's : persist, delete, findAll, ....
}
 
@Local
public interface AckDao extends GenericDao<Ack, Integer> {
 
// Méthodes spécifiques à ce DAO.
}
Est-ce juste ?

Note : cela peut paraître bizarre comme hiérarchie mais elle fonctionne parfaitement bien en dehors des EJB's - avec Spring et le support Hibernate par exemple.

Merci d'avance.