Hi zusammen,
können SessionBeans von anderen SessionBeans erben und ist dies vernünftig?
Die Frage hat folgenden Hintergrund:
Ich möchte, dass meine EJB-SessionBeans einen anderen EntityManager in meiner realen Applikation(mit JBoss Seam) als in meiner Testumgebung verwenden.
Ich dachte dabei an folgendes (so aus dem Kopf aufgeschrieben):
Was meint ihr zur Vorgehensweise? Ist dies akzeptabel?
können SessionBeans von anderen SessionBeans erben und ist dies vernünftig?
Die Frage hat folgenden Hintergrund:
Ich möchte, dass meine EJB-SessionBeans einen anderen EntityManager in meiner realen Applikation(mit JBoss Seam) als in meiner Testumgebung verwenden.
Ich dachte dabei an folgendes (so aus dem Kopf aufgeschrieben):
Java:
@Remote
public interface BasicRemote{
EntityManager getCurrentEntityManager();
void setCurrentEntityManager(EntityManager em);
}
@Stateless
public BasisStatelessBean{
@PersistenceContext(name="MyPU)
private EntityManager em;
public BasisStatelessBean(){
setCurrentEntityManager(em);
}
}
So jetzt die Vererbung:
@Stateless
public BeanA extends BasisStatelessBean implements MyInterface{
//Hier kommt der Code rein. Es wird nun zur Speicherung der currentEntityManager genommen
}
Bis jetzt sollten die EJBSessionBeans im Normalbetrieb laufen (wenn die Vererbung klappt).
Jetzt der Aufruf in der Testumgebung. Dabei möchte ich ein Singleton verwenden, ich nenne es mal PersistenceLocator, das mir einen EntityManager händisch erzeugt.
Hier die Testklasse:
public MyTest {
@Test
public void testBeanA(){
BeanA myBean = new BeanA();
myBean.setCurrentEntityManager(PersistenceLocator.getInstance().createEntityManager());
//Die eigentliche Durchführung des Tests
}
}
Was meint ihr zur Vorgehensweise? Ist dies akzeptabel?
Zuletzt bearbeitet von einem Moderator: