Я пытаюсь иметь 2 таблицы следующим образом:
MISУпражнение (таблица)
ИДЕНТИФИКАЦИОННОЕ ИМЯ...
2 a
MISInteractiveExercise(таблица)
ИДЕНТИФИКАЦИОННОЕ ИМЯ...
1 b
У них не должно быть одинаковых идентификаторов. И они наследуются от одной и той же базы. Мой код:
@MappedSuperclass
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public abstract class MISExerciseBase {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Integer id;
...
}
@Entity
public class MISExercise extends MISExerciseBase{
...
}
@Entity
public class MISInteractiveExercise extends MISExerciseBase{
...
}
К сожалению, я обнаружил, что таблица MISExercise и таблица MISInteractiveExercise могут иметь один и тот же идентификатор. Когда я гуглю, я нахожу http://openjpa.208410.n2.nabble.com/same-Id-on-mapped-superclass-td2435374.html. У @Kaayan, похоже, та же проблема. Но я не могу получить помощь с этой страницы.
И кажется, если я буду использовать @Entity, а не @MappedSuperclass, все будет в порядке. Но почему и как лучше?