0

私は現在 Eclipse Indigo を使用しています。エンティティの同じパッケージにメタモデル クラスを含めるのではなく、サブパッケージにメタモデル クラスを自動的に生成したいと考えています。

JPA User Guide for Canonical Model Generator on Eclipse Galileoの指示に従いましたが、Indigo ではまったく機能しません。:(

サブパッケージで静的メタモデル クラスを使用している人はいますか? Eclipse Indigo で設定する方法はありますか?

4

1 に答える 1

1


サブパッケージ(またはその他)にパッケージを含めると、現在のJPA 2仕様に違反するため、パッケージを変更しないでください。

•パッケージpの管理対象クラスXごとに、パッケージpのメタモデルクラスX_が作成されます。[67]
...
[67]この仕様の将来のリリースでは、さまざまなパッケージのオプションが提供される予定です。
...
この仕様の実装は、非正規のメタモデルクラスの使用をサポートするために必要ではありません。非正規のメタモデルクラスを使用するアプリケーションは移植できません。

整理する他の方法は、一般的なJUnitプラクティスです。異なるソースディレクトリにある同じパッケージです。

しかし、あなたがしなければならないなら、これはそれが行われる方法です

以下は、少なくともEclipseバージョンで動作します:Indigo Service Release 1 20110916-0149およびEclipseLink:eclipselink-2.3.0.v20110604-r9504。JARの名前は、バージョンごとにわずかに異なる場合があります。

有効になっている場合は、エンティティが存在するのと同じパッケージへの生成を無効にします。

  1. プロジェクトのプロパティ-JPAに移動し、ソースフォルダの値が<None>

他のパッケージへの生成の調整:

  1. プロパティ-注釈処理
    [x]プロジェクト固有の設定を有効にする
    [x]注釈処理
    を有効にする[x]エディターでの処理を有効にする
    生成されたソースディレクトリ:src(またはソースが存在する場所)
  2. 新しいプロセッサオプション:
    key = eclipselink.canonicalmodel.subpackage
    value = sub | (希望するパッケージ名)
  3. 注釈処理を1レベル深くします| ファクトリパスを選択し、[外部JARの追加]を選択して、次のjarを追加

    ます
  4. Eclipseにプロジェクトを再構築させます。
于 2011-10-03T07:21:11.663 に答える