在使用play! framework时
遇到 The JPA context is not initialized 这是由于 你是用了自己的线程,play框架 默认是每个request请求中 或者 继承了Job 的定时定点任务中,初始化了JPA EntityManager对象的,如果是你自己的线程这没有,需要你自己设置。如下图
class Runner extends Runnable { @Override public void run() { if (JPA.local.get() == null) { EntityManager em = JPA.newEntityManager(); final JPA jpa = new JPA(); jpa.entityManager = em; JPA.local.set(jpa); } JPA.em().getTransaction().begin(); ... DO YOUR STUFF HERE ... JPA.em().getTransaction().commit(); }
}