在play framework 1.x中使用多线程,如果涉及到要调用主线程中的jpa对象进行操作,那么需要引用到play框架附带的jpa类。
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(); //正常对jpa对象进行操作 JPA.em().getTransaction().commit(); }}也可以使用play提供的JPAPlugin进行配置和调用:
class Runner extends Runnable { @Override public void run() { JPAPlugin.startTx(false); //正常对jpa对象进行操作 JPAPlugin.endTx(false); }}新闻热点
疑难解答