2012-11-23 4 views
5

私のプロダクションコードでうまく動作するJavaエンティティクラスがいくつかあります。私は非常に同じクラスを再利用しているこのアプリケーションの自動テストを書いています。OpenJPAから:FooBarにcolumを指定しましたが、このマッピングにこのコンテキストの列を含めることはできません

テストアプリケーションは、そのエンティティマネージャをこのように作成されています

Properties props = new Properties(); 
props.setProperty("provider", "org.apache.openjpa.persistence.PersistenceProviderImpl"); 
props.setProperty(...);  
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("foobar-upgrade-restful-test", props); 

EntityManager entityManager = entityManagerFactory.createEntityManager(); 

アプリケーションがそれを示すエラーメッセージがスローされます。

Caused by: <openjpa-2.2.0-r422266:1244990 fatal user error> org.apache.openjpa.persistence.ArgumentException: You have supplied columns for "com.foo.bar.server.commontypes.job.CompositeJob", but this mapping cannot have columns in this context. 
    at org.apache.openjpa.jdbc.meta.MappingInfo.assertNoSchemaComponents(MappingInfo.java:382) 
    at org.apache.openjpa.jdbc.meta.strats.FlatClassStrategy.map(FlatClassStrategy.java:51) 
    at org.apache.openjpa.jdbc.meta.ClassMapping.setStrategy(ClassMapping.java:392) 
    at org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(RuntimeStrategyInstaller.java:56) 
    at org.apache.openjpa.jdbc.meta.MappingRepository.prepareMapping(MappingRepository.java:411) 
    at org.apache.openjpa.meta.MetaDataRepository.preMapping(MetaDataRepository.java:762) 
    at org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:651) 
    ... 72 more 

私は実際には同じようなエラーメッセージを理解していませんエンティティBeanはGlassfishの下でアプリケーションで作業しており、persistence.xmlもほとんど同じです。 (テストでは、私が代わりにJTAのRESOURCE_LOCAL TXを使用しますが、私はそれがこのエラーと関係を持っていることを疑う。

はあなたが間違って何任意のアイデアを持っていますか?

+1

このエンティティの2つのXMLマッピングを取得します。おそらく彼らは、あなたが言ったように、ほとんど同じで、問題はマッピングに関連しています。 – dan

+0

xmlマッピングはありません。私はアノテーションベースの設定を使用しているので、違いはありません。 – jabal

+0

JPAの注釈をテスト環境(詳しく説明できます)でサポートしていますか?エンティティをpersistence.xmlにリストしていますか? – JScoobyCed

答えて

4

エラーは、マッピング情報に問題があることを示していますcom.foo.bar.server.commontypes.job.CompositeJobのために提供しました

私はJTAで動作する理由を推測していますが、ローカルのリソースでは、異なる環境でメタデータがロード/処理される方法が奇妙な場合があります。エンティティから関連するマッピングデータを投稿すると便利です。

+1

ありがとう@Rick。私は最近このような問題がかなりありました。私は次のことを確認しました:1.マッピングは正しい - onetoone、onetomany ....、2.エンティティは正しく、スキーマで指定されたすべての列の表現を持ちます。3.テーブル名が宣言されていますエンティティがpersistence.xmlに追加されました。 – Alice

+0

@Alice - あなたのエンティティの詳細をopenjpaユーザーのメーリングリストに質問を投稿することをお勧めします。 – Rick

+0

ありがとう@Rick。私はこれらの問題を解決することができました。上記と同じエラーが出ました。私はこれらの問題が他の人にも役立つかもしれないので、私が問題を解決するのに役立つもののチェックリストを追加しました。再度、感謝します。 – Alice

関連する問題