我的三个班是这样的。
@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> {
}