失败后重置Eclipselink JPA实体经理

时间:2012-09-05 07:22:28

标签: java jpa eclipselink

我目前在使用JPA实体经理时遇到了一些问题(使用Eclipselink)。 每当实体经理出现问题时,我就无法再对其进行任何操作。我每次都要重启。这真是令人讨厌,当考虑在生产中使用它时,我并不觉得这很舒服。

是否有人要重置实体管理器而不必重新启动整个应用程序?是否有一些配置选项允许我使实体管理器更加强大,以防止运行jpa操作?

克里斯

2 个答案:

答案 0 :(得分:0)

据我所知,当EntityManager抛出任何异常时,它必须被丢弃,因为它变得不可用(通常在除close()之外的任何操作上抛出IllegalStateException。)

我从未尝试过JMelnik所建议的内容,因为我总是使用容器管理的上下文,但它可能会有效。

答案 1 :(得分:0)

请提供更多详情,

"每当出现问题时#34; - 出了什么问题?你得到什么错误,包括堆栈。

"我再也无法做任何事情" - 你得到什么错误?

通常,当操作因EntityManager失败时,您只需关闭它并从工厂创建一个新操作。每个请求或每个事务都应该使用EntityManagers,因此除非您的应用程序设计不正确,否则获取新的应该不是问题。

您也可以调用clear()来重置特定的EntityManager以继续使用它。