我有一个返回特定DB实体管理器的方法。当我第一次使用该方法获取实体管理器时,一切正常。我可以使用实体管理器将数据保存到任何表A,B,C中。现在说我在保存表B时得到异常
现在当我尝试在上面发生异常之后对DB执行任何操作时,下次当我尝试运行相同的代码时,它在表A本身更新时失败。我可以看到下面的内容
<openjpa-1.2.2-SNAPSHOT-r422266:778978M-OPENJPA-975 nonfatal user error> org.apache.openjpa.persistence.InvalidStateException: The factory has been closed. The stack trace at which the factory was closed is available if Runtime=TRACE logging is enabled.
at org.apache.openjpa.kernel.AbstractBrokerFactory.assertOpen(AbstractBrokerFactory.java:673)
at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:182)
at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
at ..
答案 0 :(得分:0)
在代码中的某个位置,您(或框架)关闭EntityManagerFactory
。确保你没有打电话给close()
。