如何在普通的 java 类中获得实体管理器?我尝试了注入(inject),但没有任何结果,我总是得到一个 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;
}
}
感谢您的帮助。
最佳答案
public class ClassName {
@PersistenceContext(unitName = "myPU")
public EntityManager em;
@Resource
UserTransaction utx;
如果不在 Java EE 容器内运行,则此处没有 Dependency.Injection。 这些属性为空。您需要首先初始化它们(或者添加 spring 或其他 DI 容器)。
关于java - 在普通 Java 类中获取 EntityManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9978258/