Eclipselink和JPA错误,未知实体类型

时间:2014-09-24 08:23:49

标签: java jpa eclipselink weblogic-10.x

我在每个版本中都遇到了eclipselink以及JPA和Weblogic的问题。这似乎是一个未解决的错误。

我使用的配置是Kepler,Weblogic 10.3.5和Eclipselink 2.1。

它抛出的错误是:

java.lang.IllegalArgumentException: Object: <object> is not a known entity type.

我已经在persistence.xml文件中声明了所有类型。每次重新部署应用程序时都会发生错误。现在,我找到的唯一解决方法是重启服务器。然后它工作正常。

此错误似乎已存在很长时间了。

我发现这个帖子的情况相同:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=326552

除了重新启动服务器之外,还有什么想法可以解决?

谢谢。

1 个答案:

答案 0 :(得分:0)

您是如何创建EntityManagerFactorys的?您必须在完成后关闭它们来维护它们的生命周期。错误中描述的问题是由于没有关闭工厂,这些工厂是静态保留的,因此在重新部署应用程序时会重复使用。旧的EMF将使用旧的类加载器,因此不能使用从重新部署的应用程序加载的实体。

解决它的唯一方法是在重新部署之前关闭旧的EntityManagerFactory。或者,在重新部署之前取消部署并等待垃圾收集以关闭它们可以正常工作。