0

私は私のアプリケーションでこの関係を持っています:

Entry 1:n Guest

Entry.classには次のプロパティが含まれています。

Entry {
  ...
  List<Guest> guestList = new ArrayList<Guest>();
  ...
}

Hibernate で遅延読み込み用にこのプロパティを構成したいのですguestListが、うまくいきません。ここに私が持っているものがあります:

<class name="...." table="entry">
  <id name="id" column="entry_id" type='long'>
    <generator class="native" />
  </id>

  ...other properties...

  <list name="guestList" table="guest" cascade="all">
    <key column="entry_fk"/>
    <index column="guest_id"/>
    <one-to-many class="Guest"/>
  </list>

  ...other properties...

</class>

Guest テーブル スキーマの説明は次のとおりです。

table : guest[guest_id,entry_fk,guestName,...]

ところで...

  • このプロジェクトでは注釈を使用できません。
  • できれば、遅延読み込みを使用したいと思います(機能したらすぐに)
  • テーブルにインデックスがありませんが、Hibernate はこの定義を求め続けます。
4

1 に答える 1

0

XMLマッピングの経験はありませんが、少なくとも2つのエラーが表示されます。

  1. Hibernateが独自の遅延読み込みリスト実装を挿入できるように、フィールドをとして宣言する必要がありますList<Guest>(とにかく、型を作成するのではなく常にインターフェイスを使用するのがベストプラクティスですが、Hibernateでは必須です)
  2. リストの場合は、インデックスが必要です。そうでなければ、それはバッグです。インデックスは、リスト内のゲストのインデックスを保持することになっています。IDはインデックスではなくtusです。

それ以外の場合、1対多のマッピングはドキュメントで説明されています。set例のを、に置き換えれbagば、問題ないはずです。

于 2012-07-25T05:54:41.087 に答える