2

2 つの MySQL テーブルがあり、それらを休止状態にマップしたいと考えています。

cars
- Id
- owner

audis:
- AudiId
- model

コード内:

@Entity
@Table(name = "cars")
public class Car{
    Integer id;
    String owner;
}

@Entity
@Table(name = "audis")
public class Audi extends Car{
    String model;
}

AudiId が cars テーブルの Id を参照するように、それらの間に主キーを結合したいと考えています。ID は自動インクリメントされます。

例:

cars
id: 1 owner: "John"
id: 2 owner: "Jim"
id: 3 owner: "Jake"

audis
audiId: 1 model: "A8"
audiId: 3 model: "A6"

休止状態でこれを行う最良の方法は何ですか? どの注釈を追加する必要がありますか? 欠落しているコードはどれですか (getter と setter を除く)?

このトピックに関する多くのチュートリアルは非常にわかりにくいので、助けていただければ幸いです。

4

2 に答える 2

0

@Inheritance(strategy=InheritanceType.JOINED)classのアノテーションを試してくださいCar。クラス@Id @GeneratedValueIdメンバーにも使用できます。Car

以下は、hibernate で継承を使用する方法の例です。それが役に立てば幸い。

于 2012-07-24T17:14:27.613 に答える
0

@Inheritance(strategy=InheritanceType.JOINED)スーパークラス (Car) で注釈を使用し、@Idを使用して Car に id 属性を作成し、 @GeneratedValueとしてマークすることができます。

次に、サブクラスで@PrimaryKeyJoinColumn(name="car_id")を使用します。この名前は、Car スーパークラスの ID で使用される名前と同じでなければなりません。

@PrimaryKeyJoinColumnアノテーションは、別のテーブルに結合するための外部キーとして使用される主キー列を指定します

これについて学ぶための非常に簡単な例を次に示します。

于 2012-07-24T17:23:50.603 に答える