1

フォームにオブジェクトがあります。

abstract class AbstractSomething{
    int myMember;
    // getters and setters
}


class ConcreteClass extends AbstractSomething{
    int someOtherMember;
    String name;
    // getters and setters
}

ConcreteClassここで、一意のキーが myMember の構成であり、someOtherMember休止状態の注釈を使用する必要があるデータベースに (1 つのデータベース テーブルに)永続化したいと考えています。複合キーは通常 and を使用して作成されることがわかりますが、キー@Embeddedパーツ@EmbedderIDの 1 つが実際にスーパークラスからのものである場合にトリックを実行する方法がわかりません。

4

2 に答える 2

1

myMember inAbstractSomethingの抽象ゲッターとセッターを宣言することをお勧めします`

abstract class AbstractSomething{
    abstract int getMyMember();
    abstract void setMyMember(int i);        
    // getters and setters
}

次に宣言する

@Embeddable class SomethingId {
    String name;
    int myMember;
}

そしてあなたの具象クラス:

class ConcreteClass extends AbstractSomething{

    @EmbeddedId SomethingId somethingId ;

    int someOtherMember;

    @Override
    public int getMyMember(){
        return somethingId.myMember;
    }

    @Override
    public void setMyMember(int i){
        somethingId.myMember = i;
    }

   // getters and setters
}
于 2013-10-23T15:17:01.367 に答える