Maven &引用;不是已知实体”;日食误差
当使用EclipseLink(2.0.2)时,我在Weblogic(10.3.3)中看到了一种奇怪的行为 这就是我要做的。我使用Maven编译了一个项目,其中我使用了JPA(1.0.2)。在本项目中,模块“A”依赖于模块“B”。“B”包含一组实体(javax.persistence.Entity)。但是“persistence.xml”位于“A”中,其中注册了“B”的所有实体。“B”作为可选包部署,而“A”通过其清单引用它 部署是成功的,但当我运行应用程序并尝试持久化一个实体时,我在“A”中得到了上面的错误 以下操作之一将解决此问题:Maven &引用;不是已知实体”;日食误差,maven,jpa,weblogic,eclipselink,Maven,Jpa,Weblogic,Eclipselink,当使用EclipseLink(2.0.2)时,我在Weblogic(10.3.3)中看到了一种奇怪的行为 这就是我要做的。我使用Maven编译了一个项目,其中我使用了JPA(1.0.2)。在本项目中,模块“A”依赖于模块“B”。“B”包含一组实体(javax.persistence.Entity)。但是“persistence.xml”位于“A”中,其中注册了“B”的所有实体。“B”作为可选包部署,而“A”通过其清单引用它 部署是成功的,但当我运行应用程序并尝试持久化一个实体时,我在“A”中得到
- 重新启动weblogic服务器
- 更新模块A的POM文件并显式地向模块B添加依赖项。最初,此依赖项不存在,因为模块A中的类接受“对象”,并将其传递给EntityManager(而不是显式地传递给实体类类型)。无论如何,添加此依赖项不会更改JAR文件的清单。它只更新JAR文件META-INF文件夹中的“maven”目录。我认为weblogic根本不关心这个文件夹
我估计重启服务器会更新缓存。但是第二个解决方案呢?为什么会这样?weblogic是否知道JAR文件META-INF目录中的“maven”目录?听起来您的部署没有正确部署B模块
您使用的是容器管理的持久化单元还是应用程序管理的持久化单元?如果您使用的是应用程序管理的持久化单元,则必须在重新部署之前关闭EntityManagerFactory,否则,包含旧类的旧工厂将保留下来。这听起来并不意味着您的部署正确地部署了B模块
您使用的是容器管理的持久化单元还是应用程序管理的持久化单元?如果您使用的是应用程序管理的持久化单元,则必须在重新部署之前关闭EntityManagerFactory,否则将保留包含旧类的旧工厂。部署过程中不会出现任何错误。PU是容器管理的。org.eclipse.persistence.jpa.PersistenceProvider XYZDS com.xxx.entities.XyzEntity部署过程中没有任何错误。PU是容器管理的。org.eclipse.persistence.jpa.PersistenceProvider XYZDS com.xxx.entities.XyzEntity