У меня простая модель наследования:
public abstract class Base {
int id;
string name;
}
public class Derived1 extends Base {
int valueD1;
}
public class Derived2 extends Base {
int valueD2;
}
Как следует сопоставить классы (с JPA аннотации), так что у меня есть отдельные таблицы для Derived1 и Derived2 (таблица на конкретный класс) и без таблицы для базы.
Должен ли я использовать @MappedSuperclass или @Embeddable (и пропустить наследование) или @Inheritance?
Используйте @MappedSuperclass и определите отдельные таблицы для каждого объекта, IMHO,
Но это зависит от того, будет ли вы, скорее всего, запросить родительский класс или использовать оба производных объекта для себя, без необходимости запрашивать две таблицы.