在普通Java类中获取EntityManager
如何在普通java类中获得实体管理器?我尝试了注入,但没有任何结果,我总是得到一个NullPointerException:在普通Java类中获取EntityManager,java,class,entitymanager,Java,Class,Entitymanager,如何在普通java类中获得实体管理器?我尝试了注入,但没有任何结果,我总是得到一个NullPointerException: public class ClassName { @PersistenceContext(unitName = "myPU") public EntityManager em; @Resource UserTransaction utx; ... 然后我用一个提供EntityManagerFactory的单独类进行了尝试,也没有成功
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;
如果不是在JavaEE容器中运行,那么这里没有Dependency.Injection。
这些属性为空。您需要首先初始化它们(或者添加spring或其他DI容器)。您不能只说“也没有成功”。
createEntityManagerFactory()有什么问题?异常?线程“main”java.lang.NullPointerExceptionSoPersistence.createEntityManagerFactory(“myPU”)中的异常代码>未引发任何异常?刚刚返回的null
?容器创建EntityManager
,并执行注入。如果您不是在容器中运行,那么没有任何东西可以创建EntityManager
s或进行注入,所以您需要自己完成。我明白了。我尝试将其作为运行在JBoss上的HttpServlet。调用时,它会按计划设置EntityManager和UserTransaction。谢谢你的提示!