java - JPA - "no Metadata found for type"异常

标签 java hibernate orm jpa persistence

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

org.apache.openjpa.persistence.ArgumentException:未找到类型“class 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.notification.IMSNotification。 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 文件。

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

最佳答案

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

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

我们还遇到这样的问题:OpenJPA 在某个时刻工作正常,然后开始为某些表生成无效查询。类或数据库元数据似乎在某个时刻已损坏。出现问题后,生成无效查询。

您有关于此问题的一些新信息吗?

关于java - JPA - "no Metadata found for type"异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4327691/

相关文章:

java - 对事务提交执行操作

java - JPA - 在 Postgresql 上保留 LOB 属性

java - 关于 Hibernate save() 方法的一些说明。为什么要正确更新现有记录?

带有按钮和分页的 Javafx TableView

java - 按下后退按钮后 libGDX And​​roid 白屏

java - 我的 JPA/Hibernate 自定义类型有什么问题?

java - 配置 Spring + Hibernate 事务管理器

php - fatal error : Class ConnectionWrapper not found in ConnectionFactory. PHP

java - Java (Android) 中从 float 到 char[] 的转换

Java 泛型接口(interface)与泛型方法,以及何时使用它们