私はこのように見える3つのクラスを持っています。
@Entity
class A {
@Id @GeneratedValue @TableGenerator
private long id;
}
@MappedSuperclass
abstract class B extends A {
}
@Entity
class C extends B {
}
上記でも機能するはずですか?そして、少なくともEclipseLinkではうまくいかないようです。
Column 'ID' cannot be null
のインスタンスを永続化しようとしたときに取得しましたC
。
@MappedSuperclass を使用した抽象中間クラスの継承でサブクラスの作成に失敗するバグを見つけましたが、まったく同じ状況かどうかはわかりません。
@Jamesの回答ごとに更新
すみません、もっと詳しく書くべきです。はい、SINGLE_TABLE の継承を意図しています。B
norの拡張プロパティはありませんC
。それは単なる階層クラスの設計です。
@DiscriminatorColumn
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Entity
abstract class A {
@Id @GeneratedValue @TableGenerator
private long id;
}
@DiscriminatorValue("B") @Entity // I currently should do like this.
//@MappedSuperclass // error
abstract class B<T extends SomeoneElse> extends A {
}
@DiscriminatorValue("C")
@Entity
class C extends B<James> {
}