0

外部キーによって1対1の関係にある必要がある2つのクラスAとBがあります。Aには主キーとしてa_idがあり、Bにはa_id外部キーがありますしかし、クラスBにAの識別子のみを認識させたい(つまり、クラス B のタイプ A のフィールド)、A は B クラス全体をロードします。

やってみた(Aクラス)

@OneToOne
@JoinColumn(name="a_id",referencedColumnName="a_id")
private B b;

しかし、休止状態は参加しようとします

a.a_id = b.b_id

それ以外の

a.a_id = b.a_id

期待される動作をどのように達成できるかについてのアイデアはありますか?

ありがとう

4

2 に答える 2

0

以下で動作するはずです:

@OneToOne
@JoinColumn(name="a_id") //better name would be a_fk
private B b;

しかし、私は数年前に 1:1 の関係で問題を抱えていました。この場合、回避策として ManyToOne を使用しました。

@ManyToOne
@JoinColumn(name="a_id") //better name would be a_fk
private B b;
于 2010-12-22T06:31:01.123 に答える
0

継承タイプのシナリオでは、1 対 1 が使用されます。この状況で 1 対 1 と多対 1 を使用するかどうかはわかりません。一意の制約を使用して多対 1 を試してください。

于 2010-12-22T01:26:28.467 に答える