将实体管理器注入托管bean

时间:2011-01-18 19:00:41

标签: jsf-2 jpa-2.0

可以使用@PersistenceContext(或@PersistenceUnit)将实体管理器(或其工厂)注入jsf托管bean吗?

我尝试但没有,我获得了NullPointerException。

1 个答案:

答案 0 :(得分:7)

是的,这是可能的。这是语法。

@PersistenceContext
EntityManager em;

您需要在项目中使用persistence.xml。顺便说一句:我正在运行Glassfish 3。

然后,您可以使用em.createNamedQuery等方法。

还要记住注入发生在构造函数之后,所以如果你试图在构造函数中执行数据库函数,那么这将不起作用。您必须将@PostConstruct注释添加到方法中。这可能是你遇到的问题。