2012-03-18 8 views
3

OSGi環境でEclipseLinkを使用しようとしています。<class>の定義をEclipseLinkでプログラムで作成する

私がしたいことは、EntityManagerを他のバンドルに公開するプロバイダバンドルを構築することです。

問題は、コンパイル時にエンティティクラスを判別してpersistence.xmlファイルに書き込むことができないことです。ですからエンティティクラスをプログラムで定義できるようにしたいと考えています。私はすべてのEntityクラスをスキャンすることができますが、見る限り、EclipseLinkで定義する方法はありませんが、Hibernateでは可能です。 (OSGi環境ではHibernateにいくつかの問題があるので、どちらも使用できません)

エンティティクラスをプログラムで定義するにはどうしたらいいですか?

注:春の使用は私にとってはオプションではありません。 ClassDescriptorsをゼロから定義することは受け入れられません。そのような本質的な機能がJPAやEclipseLinkのどちらでも直接サポートされていないのは本当にばかげていると言わざるを得ない。

答えて

1

<jar-file>タグをpersistence.xmlに入れましたか?

すべてのパーシスタンスクラスをjarにパックし、パーシスタンスユニットバンドルとパーシスタンスxmlに含めることができます。

JPA2仕様の詳細8.2.1.6.3

+0

これを行うことができれば、persistence.xmlファイルにクラス名を追加することもできます。どのバンドルもそのパーシスタンスクラスを持つことができ、単一のバンドルにマージすることはできません。 – noego

1

これを試しましたか?

<exclude-unlisted-classes>false<exclude-unlisted-classes> 
+0

はい、しかしチャンスはありません。 Java SE環境でJPAを使用することに関するブログや記事にもかかわらず、このパラメータはSE環境では機能しません。 – noego

関連する問題