次のように、2つのテーブルを作成しようとしています。
MISEエクササイズ(表)
識別名...
2a
MISInteractiveExercise(表)
識別名...
1b
ID が同じであってはなりません。そして、それらは同じベースから継承されます。私のコードは次のとおりです。
@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 のテーブルは同じ ID を持つことができます。グーグルで検索すると、http://openjpa.208410.n2.nabble.com/same-Id-on-mapped-superclass-td2435374.htmlが見つかります。@Kaayanにも同じ問題があるようです。しかし、そのページからヘルプを得ることができません。
そして、@MappedSuperclass ではなく @Entity を使用すれば問題ないようです。しかし、なぜ、そして良い方法は何ですか?