0

次のテーブル構造が与えられていますが、これは変更できません。

Table A {
    idA auto_increment primary key
    [... some values...]
}

Table B {
    idB auto_increment primary key
    idA foreign key referencing Table A
    [... some values...]
}

Table C {
    idC auto_increment primary key
    idA foreign key referencing Table A
    [... some values...]
}

次のように、これらのテーブルを抽象スーパー クラスと 2 つのサブクラスにマップします。

@Inheritance(strategy = InheritanceType.JOINED)
public abstract class A {
    @Id
    @GeneratedValue(strategy=IDENTITY)
    private int aID;

}

@PrimaryKeyJoinColumn (name = "idA")
public class B extends A {

    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int bID;

}

@PrimaryKeyJoinColumn (name = "idA")
public class C extends A {

    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int cID;

}

これらの注釈は正しくなく、hibernate はサブクラスの 2 つの ID を処理できないようです。

指定されたテーブル構造を変更できないと仮定すると、テーブル構造をクラス構造にマップする最良の方法は何ですか?

4

0 に答える 0