Я знаю, что могу сделать следующее:
public class MyDao{
private EntityManager em;
public void setEm(EntityManager em){
this.em = em;
}
...
, а затем, используя @PostConstuct
, передать EntityManager
public class MyBean{
private EntityManager em;
@Inject
private MyDao myDao;
@PostConstruct
private void init(){
myDao.setEm(em);
}
...
Но из-за ограничений архитектуры моего приложения яя не могу напрямую добавить MyDao в MyBean, я должен пройти мимо класса MyBusinessDao, поэтому я попробовал следующее, но получаю nullPointerExeception
для значения EntityManager
в MyDao:
public class MyBean{
private EntityManager em;
public MyBean(){
em = createEntityManager();
}
private EntityManager createEntityManager(){
//dynamically create the EntityManager
}
@Inject
private MyBusinessDao myBusinessDao;
@PostConstruct
private void init(){
myBusinessDao.setEm(em);
}
...
и в MyBusinessDaoя ввожу MyDao:
public class MyBusinessDao {
private EntityManager em;
@Inject
private MyDao myDao;
@PostConstruct
private void init(){
myDao.setEm(em);
}
...
Следует отметить, что я не использую J2EE
контейнер