Ich arbeite an einem Projekt, wo ich EJB getrennt habe, so dass sie nur die Geschäftslogik ausführen, aber nicht die Abfragen durchführen. Dann habe ich auch die DAOs, die die Abfragen durchführen. Für mich ist die DAOs zu verwenden, habe ich die DAOs im EJB und mit einem Verfahren kommentierte @PostConstruct injizieren, stelle ich die EntityManager in der DAO mit den EntityManager in der Bohne injizierte wie unten:Wie man Entity Manager übergeben injected in statelesbean zu dao ohne Setter-Methode
public class ClazzDao implements ClazzDaoI{
private EntityManager em;
public void setEm(EntityManager em){
this.em = em;
}
public List<Entity> list(){
return em.createQuery("FROM Entity e").getResultList();
}
}
Und die EJB
Gibt es eine Möglichkeit, dass ich die DAOs dazu bringen kann, den im EJB injizierten Entity Manager zu verwenden, ohne ihn am @ PostConstruct des EJB zu setzen?
Warum injizieren Sie den Entity Manager nicht direkt in die DAO, wo er benötigt wird, anstatt ihn in die Dienste zu injizieren, wo er nicht verwendet werden sollte? –
Ich möchte EntityManager in der Bean injiziert verwenden und ich möchte nicht DAO als JavaBean auch verwenden. Und noch einmal, wenn ich es mit @PersistenceContext in das DAO injiziere, wird der Entity Manager bei der Verwendung null. – bavon