1

私は次のクラスを持っています:

public abstract class Generic(){
    private int Id;
    ...
}

public class ExtA extends Generic(){
    private Generic fieldA();
    private Generic fieldB();
    ...
}

public class ExtB extends Generic(){
    private Generic fieldA;
    ....
}

public class ExtC extends Generic(){
    ...
}

あいまいな例で申し訳ありません。

これらのオブジェクトをデータベースに保存する方法を見つけようとしていますが、良い方法が見つからないようです。ExtAExtB、の個別のテーブルを作成し、ExtC外部キーを使用して含まれるフィールドを関連付けたいと考えています。私は MySQL を使用しており、Java、Spring、Hibernate を使用しています。誰かがこれを行う方法の例を見せてくれるか、チュートリアルを教えてもらえますか?

私はデータベースを扱うのが初めてであることに言及する必要があります。

4

1 に答える 1

2

このようなもの。Table_Per_Class 戦略を使用すると、「ジェネリック」オブジェクトを要求して、そのすべてのサブクラス テーブルをクエリできると比較的確信しています。これを行う場合、ID はすべてのサブクラス タイプで一意である必要があることに注意してください。適切な注釈を使用して休止状態に何をすべきかを伝えるための戦略を考え出す必要があります。ただし、この例では、保存する前に手動で割り当てることを前提としています。

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Generic {
   @Id @Column(name="ID")
   private Long id;
   ...
}

@Entity
@Table(name="EXTA")
public class ExtA extends Generic {
   @Column(name="fieldA")
   private Generic fieldA;
}
于 2012-06-12T20:54:22.070 に答える