在使用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();
}
}