1

作業中の既存の Hibernate Entity 階層があります。エンティティはすでに MappedSuperClass を使用して、基本クラスからいくつかの共通フィールドを継承しています。私のシナリオでは、これらのフィールドも継承する必要があり、さらに、Hibernate の Embeddable 機能を介して構成を活用する必要があります。

たとえば、エンティティ Car は MappedSuperClass としてマークされ、エンティティ CarTypeA および CarTypeB によって拡張されます。

現在、CarTypeA と CarTypeB の間にもいくつかの共通フィールドがあり、Embeddable クラスに抽出できます (CommonCarStuff と呼びます)。CommonCarStuff は次のようになります

@Embeddable
public class CommonCar
{
    private String aCommonItem;
}

このクラスを CarTypeA で使用できますが、実行時に Hibernate によって生成された INSERT クエリが正しくありません。生成する代わりに

INSERT INTO CAR_TYPE_A(A_COMMON_ITEM)..

クエリ生成状態

INSERT INTO CAR_TYPE_A(COMMON_CAR_A_COMMON_ITEM)..

この列がテーブルにマップされていないため、クエリが常に失敗します。Embedded クラスを正しく宣言しました。

誰かが私を助けてくれることを願っています。

ありがとう

4

0 に答える 0