【发布时间】:2013-05-10 14:28:56
【问题描述】:
我想编写一个 CDI 扩展,它从数据库加载一些实体(实际上是实现某个接口的 groovy 脚本)并将它们作为 bean 提供,这样就可以获得由 CDI 注入的该接口的所有实现.我想……像下面这样:
public class ExtensionClass implements Extension {
@Inject
EntityManager em;
public void afterBeanDiscovery(@Observes final AfterBeanDiscovery event, final BeanManager manager) {
Entity entity = em.find();
//do sth with entity...
}
}
当我尝试以这种方式注入实体管理器时,它为空(这并不让我感到惊讶,我没想到 @Inject 会在 CDI 扩展类中工作)。
是否可以通过某种方式访问 CDI 扩展中的实体管理器(例如通过 BeanManager)?还是我必须以其他方式访问数据库?
【问题讨论】:
标签: hibernate jpa java-ee-6 cdi