Ваш идентификатор должен быть уникальным для самого высокого объекта в иерархии, который является сущностью.Вы не можете определить ID для подклассов и иметь суперкласс, то есть сущность, у которой нет идентификатора.
Подумайте об этом так, entityManager.find(SuperClass.class, 2);
- совершенно законный вызов.Если бы ID был определен в подклассах как столбец FK, более чем у одного из них мог бы быть ID 2!Что будет возвращено?
Использование стороны FK отношения ManyToOne в качестве первичного ключа бессмысленно, во-первых.Тогда по определению это будет OneToOne.