У меня есть три класса, которые выглядят так.промежуточное `@ MappedSuperclass` не удалось сохранить
@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
.
Я нашел ошибку в Inheritance with abstract intermediate class using @MappedSuperclass fails to populate subclasses, но я не уверен, что это точно такая же ситуация или нет.
UPDATE на @ ответ Джеймса
извини, я должен написан более пространно. Да, я намереваюсь наследование SINGLE_TABLE. У меня нет расширенного имущества с B
или 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> {
}
Не могли бы вы взглянуть на [link] (https://bugs.eclipse.org/bugs/show_bug.cgi?id=294108) и посмотреть, что это актуально? –