0

JPQLまたはSQLを使用して計算されたコレクションマッピングを定義することは、Eclipselink(または標準JPA 2.xでさらに良い)で可能ですか?

次のテーブルがあります。

  • substory (ストーリーの外部キー)
  • substory_x_company (サブストーリーと会社への外部キー)
  • 会社

したがって、次の 3 つのエンティティを作成しました。

  • ストーリー (多くのサブストーリーがあります)
  • SubStory (多くの会社があります)
  • 会社

これまでのところ、問題ありません。しかし今、要件:

エンティティ ストーリー内のすべての会社のコレクション (名前順) をマップする必要があります。これがエンティティ内で直接可能であれば (別の DAO を使用したり、サブストーリーからすべての会社を収集して並べ替えたりするのではなく) )。Story には上記と同じように設計された 15 の他のリレーションがあり、可能であればボイラープレートを最小限に抑えたいので、私はこれを求めています。

今のところ変更できないので、テーブル構造を批判しないでください ;-)

皆様のご意見をお寄せいただき、誠にありがとうございました。

4

1 に答える 1

1

Story/Company 関係を ManyToMany 関係として定義するデータベース ビューを定義する (または実際のテーブルにする) ことができます。

http://en.wikibooks.org/wiki/Java_Persistence/Advanced_Topics#Views

EclipseLink を使用すると、任意の式を使用して関係をマップできます。

http://wiki.eclipse.org/EclipseLink/Examples/JPA/MappingSelectionCriteria

または、独自のカスタム SQL を使用することもできます。

http://wiki.eclipse.org/EclipseLink/Examples/JPA/CRUDStoredProcedures

于 2013-08-07T13:20:17.073 に答える