我在web项目里面练习使用JPA。 
一般得到EntityManager对象的时候是用EntityManagerFactory产生的。 也就是 
EntityManager em = Persistence.createEntityManagerFactory("my_apply_job").createEntityManager(); 这样写完全没有错。 但是,我现在想用注解做 
@PersistenceContext(unitName="my_apply_job") 
private EntityManager em; 
但是,老是报java.lang.NullPointerException 
我知道,可能是persistence.xml没有初始化的原因(用spring我知道怎么做),但是,我就是找不到解决的办法。 
请问,在jsp+servlet+jpa的环境下(不用任何框架,我不行用框架)怎么用注解得到EntityManager 谢谢

解决方案 »

  1.   

    那是因为没有set方法的缘故 吧。 我以前EntityManager  这种东西为空 就肯定是没有set
      

  2.   

    public class JPAServlet extends HttpServlet
    {
    private static final long serialVersionUID = 1L;

    @PersistenceContext
    private EntityManager entity; public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException
    {

    System.out.println(entity);

    List<ProductBean> list = entity.createQuery("from ProductBean as list").getResultList();

    for(ProductBean pb : list)
    {
    System.out.println(pb);
    }

    entity.close();

    response.sendRedirect("show.jsp");
    } public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException
    {
    this.doGet(request, response);
    } public EntityManager getEntity() {
    return entity;
    } public void setEntity(EntityManager entity) {
    this.entity = entity;
    }
    }以上是源代码:有set方法,还是不行。
      

  3.   

    @PersistenceContext(name="applicationContext")
    private EntityManager entity;