【问题标题】:InvalidStateException while trying to enter data into DB尝试将数据输入数据库时​​出现 InvalidStateException
【发布时间】:2010-12-30 14:40:55
【问题描述】:

我有一个方法可以返回特定 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 ..

【问题讨论】:

    标签: java jpa openjpa


    【解决方案1】:

    您(或框架)在您的代码中的某处关闭您的EntityManagerFactory。确保你没有打电话给close()

    【讨论】:

    • 实体管理器工厂能否被容器自动关闭?需要在web.xml或persistene.xml中做一些设置吗?
    • @akshay 实体管理器的生命周期和相关的持久性上下文由容器自动管理。你不需要打开或关闭任何东西。
    猜你喜欢
    • 2015-11-01
    • 1970-01-01
    • 2017-05-12
    • 2012-04-04
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多