12

これは機能しますか-

@OneToOne()
@JoinColumn(name = "id", referencedColumnName = "type_id")
@Where(clause = "type_name = OBJECTIVE")
public NoteEntity getObjectiveNote() {
  return objectiveNote;
}

これは私がやろうとしていることです-現在のオブジェクトのであり、であるnoteテーブルからtype_idレコードを取得します。idtype_nameOBJECTIVE

上記のマッピングを機能させることができません。私はここで何が間違っているのですか?

4

2 に答える 2

8

これは単純に機能しません。申し訳ありませんが:(1対多で実行し、単一の要素を持つコレクションを取得する必要があります。

本当にこのように機能させたい場合は、外部キーIDとtype_nameの両方を結合テーブルに格納し、両方の列が外部キーを構成することを通知することで、Hibernateをだますことができます。

于 2010-12-08T00:34:08.707 に答える
3

実際には、を指定せずに、参照されるエンティティクラスを設定することでこれを実現でき@OneToOneます。これをHibernate4.3.11でテストしました。@Where@Where

これは、に一致しないエンティティオブジェクトを気にしない場合に機能します@Where

他のエンティティを気にする場合は、おそらくサブクラスエンティティを作成し、それを配置し@Where、そのサブクラスに参加させることができます。しかし、私はこのシナリオをテストしていません。

于 2017-10-27T12:14:11.527 に答える