在普通Java类中获取EntityManager

时间:2012-04-02 14:28:24

标签: java class entitymanager

如何在普通的java类中获取实体管理器?我尝试使用注入,但没有任何结果,我总是得到一个NullPointerException:

public class ClassName {

    @PersistenceContext(unitName = "myPU")
    public EntityManager em;

    @Resource
    UserTransaction utx;

...

然后我尝试使用提供EntityManagerFactory的单独类,但也没有成功,抛出NullPointerException:

public class HibernateUtil {

    private static EntityManagerFactory entityManagerFactory = null;
    static {
        try {
            entityManagerFactory = Persistence.createEntityManagerFactory("myPU");
        } catch (Throwable e) {
            e.printStackTrace();
        }
    }

    public static EntityManagerFactory getEntityManagerFactory() {
        return entityManagerFactory;
    }
}

非常感谢帮助。

1 个答案:

答案 0 :(得分:2)

public class ClassName {

    @PersistenceContext(unitName = "myPU")
    public EntityManager em;

    @Resource
    UserTransaction utx;

如果没有在Java EE-Container中运行,那么这里没有Dependency.Injection。 这些属性为null。您需要先将它们初始化(或者添加弹簧或其他DI容器)。