0

次の構造のような問題があります。

Entity Car は、CityCar、StationWagon、PickUp に派生できる抽象エンティティです... - 各車には 1 つのエンジンがあり、FuelEngine、DieselEngine、HybridEngine などの抽象エンティティです...

これは識別OneToOne関係であるため、データベース設計では 2 つのエンティティを同じテーブルにマージしました (次の SQL を手書きで書いています。現在、SQL に少し慣れていません)。

CREATE TABLE CAR (
    ID UNSIGNED INT PRIMARY KEY,
    TYPE_OF_CAR CHAR,
    LICENSE_PLATE VARCHAR(...),
    ....
    ENGINE_TYPE CHAR,
    ENGINE_CYLINDRATE DECIMAL, //let's say doesn't apply to ENGINE_TYPE='ELECTRIC'
    ENGINE_KW_POWER DECIMAL(...) NOT NULL,
    ...
)

今、Hibernate でマップしたいと思います。Carクラスとサブクラスの構文に自信があります。現在、私の POJO は次のようになっています。

@Entity
@Inheritance(SINGLE.TABLE)
@DiscriminatorColumn(TYPE_OF_CAR)
public class Car{

    private int id;

    ....

    private char engineType;
    private float engineCylindrate;

    ....

}

問題は、 Engines 用の個別のテーブルを持たずに、private Engine engine;すべての Engine 属性を持つ代わりにPOJO にプロパティを表示させることは可能ですか? 独自のテーブルを持たない場合、Engine クラスはどのように見えるでしょうか?

4

1 に答える 1