【问题标题】:JPA - "no Metadata found for type" exceptionJPA - “找不到类型的元数据”异常
【发布时间】:2011-05-18 16:20:32
【问题描述】:

我的应用程序中使用的 JPA 实现是 Kodo。 尝试在数据库中查询实体时,我得到了这个非常奇怪的异常:

org.apache.openjpa.persistence.ArgumentException:找不到类型“类 com.verid.ims.model.AddressUS”的元数据。该类未出现在持久类型列表中:[com.verid.ims.model.Birthdate, com.verid.ims.model.PersonName, com.verid.ims.model.AddressUS, com.rsa.idv.ims.feedback.IMSFeedback, com.rsa.idv.ims.notification.IMSNotification, com.rsa.idv.ims.provider.IMSProvider, com.rsa.idv.ims.notification.NotificationEntry, com. rsa.idv.ims.enroll.SecretUserQuestion, com.rsa.idv.ims.enroll.Enrollment]。

请注意,根据异常没有出现在持久类型列表中的 AddressUS 类实际上在列表中! (粗体)

AddressUS 类映射到我的 orm.xml 文件中(它不在 persistence.xml 描述符中,因为它不是一个实体,只是一个可嵌入的)。这是映射:

<embeddable class="com.verid.ims.model.AddressUS">
  <attributes>
    <basic name="city" />
    <basic name="state">
      <enumerated>STRING</enumerated>
    </basic>
   <basic name="street1" />
   <basic name="street2" />
   <basic name="zipcode" />
   <basic name="suite" />
  </attributes>
</embeddable>

不用说,persistence.xml 描述符是指 orm.xml 文件。

该异常仅发生在某些环境(不是全部)上,这基本上意味着这是一个环境问题。是什么原因造成的?

【问题讨论】:

    标签: java hibernate orm jpa persistence


    【解决方案1】:

    我可以确认有同样的问题。但这是不一致的行为。应用程序可以正常工作一段时间(几天),然后突然出现这个问题。我们有集群,并且该问题仅发生在集群中的一台服务器上。

    重新启动应用程序后,OpenJPA 再次正常工作。

    我们也有问题,OpenJPA 工作正常直到某个时刻,然后开始为某些表生成无效查询。似乎类或数据库元数据在某个时刻已损坏。问题发生后,产生无效查询。

    你有关于这个问题的一些新信息吗?

    【讨论】:

    • 很遗憾,没有信息可以提供帮助。我尝试使用 WebLogic 附带的 PCEnhancer 来增强持久类(我在应用程序的其他部分看到的一种做法),但没有帮助。该问题仅发生在集群环境中,但与您的情况不同,它总是失败,并且重新启动无济于事。
    猜你喜欢
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    相关资源
    最近更新 更多