我的应用程序中使用的JPA实现是Kodo。 当试图在DB中查询实体时,我得到了一个非常奇怪的例外:
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.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文件。
异常仅发生在某些环境(并非所有环境)上,这基本上意味着它是一个环境问题。什么可能导致这种情况?
答案 0 :(得分:0)
我可以确认有同样的问题。但这是不存在的行为。应用程序工作正常(几天),然后突然出现此问题。我们有集群,只有集群中的一台服务器出现此问题。
重新启动应用程序后,OpenJPA再次正常运行。
我们也有问题,OpenJPA工作正常,然后开始为某些表生成无效查询。似乎类或数据库元数据在某些时刻已经损坏。发生问题后,将生成无效查询。
您是否有关于此问题的一些新信息?