У меня есть 3 сущности:
@Entity
public abstract class A {
@Id
public Long id;
public String a1;
public String a2;
public String a3;
//much more fields
//getters and setters
}
@Entity
public class B extends A {
public String b1;
public String b2;
public String b3;
//much more fields
//getters and setters
}
@Entity
public class C extends A {
public String c;
//that's it. no more data
//getters and setters
}
Я хочу отобразить эти классы в 2 таблицы. Первая будет содержать все данные A
и C
(т.е. наследование SINGLE_TABLE
). А вторая будет содержать данные B
и внешний ключ к A
(т.е. JOINED
наследование).
Я попробовал решение, предложенное здесь, но оно у меня не работает. Атрибуты BB1
и BB2
также входят в A
.
Как реализовать такую стратегию? Классы A
и C
так же различны, как Собака и Кошка, поэтому я не могу объединить их в один класс.
Также я не хочу использовать table-per-hierarchy, что приведет к дублированию множества данных A
.