我在OSGi容器中运行eclipselink,我的实体类在他们自己的包中。
我一再遇到Eclipselink无法自动检测实体类的问题,导致“Xyz不是已知的实体类型”消息。调试很痛苦,我有点无助的方法是或多或少地随机调整配置文件,直到它工作。
我希望我知道更系统的方法,但我似乎不太了解问题的可能原因。他们会是什么?是否概述了自动检测中发生了什么以及它需要什么?
因此,如果您自己遇到问题并能够确定一个具体原因,请在此处发布,或在您看到它时将其投票。这样我们就可以生成按频率排序的典型问题列表。我将添加我实际解决的那些。
事实我知道:
persistence.xml
进行配置,那么这是该文件所在的bundle。答案 0 :(得分:1)
eclipselink jpa无法持久化扩展实体类的类的对象。那些扩展类本身应该是实体类。
答案 1 :(得分:0)
具有实体类的bundle在其清单中没有正确的JPA-PersistenceUnits
标头。此标头是eclipselink发现有待处理的持久性单元的方式。
如果明确列出你的类使它工作,那么错误/缺少标题不是你的问题。
答案 2 :(得分:0)
实体类未在持久性单元的配置中明确列出,persistence.xml
(或您使用的任何配置机制)未将exclude-unlisted-classes
参数设置为false
(根据您是运行Java SE还是EE,默认情况下可能是真的。
如果明确列出您的课程有帮助,这可能是您的问题。