2010-12-01 10 views
1

私のアプリケーションで使用されているJPA実装はKodoです。 エンティティのためのDBを照会しようとすると、私はこの非常に奇妙な例外を取得:JPA - "タイプのメタデータが見つかりません"

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ファイルを参照しています。

一部の環境でのみ例外が発生します(すべてではない)。これは基本的に環境上の問題を意味します。何が原因でしょうか?

答えて

0

同じ問題があることが確認できます。しかし、それは矛盾した行動です。アプリケーションがうまくいくうちに(数日)、突然この問題が表示されます。私たちはクラスタを持っており、その問題はクラスタ内の1台のサーバでしか発生しません。

アプリケーションの再起動後、OpenJPAは正常に動作します。

また、OpenJPAがしばらくの間うまく動作していて、一部のテーブルで無効なクエリが生成されてしまうという問題があります。クラスやデータベースのメタデータが壊れているようです。問題が発生すると、無効なクエリが生成されます。

この問題に関する新しい情報がありますか?

+0

残念ながら、役立つ情報はありません。永続クラスを強化するために、WebLogicに付属のPCEnhancerを使用しようとしましたが(これはアプリケーションの他の部分で行ったことです)、これは役に立ちませんでした。 問題はクラスタ化された環境でのみ発生しますが、ケースとは異なり常に失敗し、再起動しても問題はありません。 – KidCrippler

関連する問題