1

我在 OSGi 容器中运行 eclipselink,我的实体类在它们自己的包中。

我反复遇到 Eclipselink 无法自动检测实体类的问题,导致“Xyz 不是已知的实体类型”消息。调试起来很痛苦,我有点无奈的方法是或多或少地随机调整配置文件,直到它工作为止。

我希望我知道一种更系统的方法,但我似乎对问题的可能原因知之甚少。他们可能是什么?是否概述了自动检测中发生的情况以及它的工作需要什么?

因此,如果您自己遇到问题并且能够确定一个具体原因,请在此处发布,或者在您已经看到它时投票。这样,我们可以生成按频率排序的典型问题列表。我将添加我实际解决的问题。

我知道的事实:

  • eclipselink 使用 OSGi 扩展器模式来监听捆绑注册,然后设置它们
  • 它应该使用定义持久性单元的捆绑包的类加载器,如果您使用的是persistence.xmlfor 配置,则这是该文件应该位于的捆绑包。
4

3 回答 3

1

eclipselink jpa 无法持久化扩展实体类的类对象。这些扩展类本身应该是实体类。

于 2010-04-16T08:53:43.580 回答
0

JPA-PersistenceUnits带有实体类的包在其清单中没有正确的标头。这个头是eclipselink如何发现有一个持久化单元要处理的。

如果明确列出您的课程使其起作用,则错误/丢失的标题不是您的问题。

于 2009-10-21T15:21:16.690 回答
0

实体类未在持久性单元的配置中明确列出,并且persistence.xml(或您使用的任何配置机制)未将exclude-unlisted-classes参数设置为false(取决于您运行 Java SE 还是 EE,默认情况下可能为 true)。

如果明确列出您的课程有帮助,这可能是您的问题。

于 2009-10-21T15:23:46.497 回答