Динамическое наследование
У меня есть ситуация, когда я хочу, чтобы класс (который является сущностью JPA) мог динамически расширять либо класс A, либо класс B.Я думал о том, чтобы использовать дженерики, но похоже, что дженерики не поддерживают это.Например:
@Entity
public abstract class Resource() {
...
}
@Entity
public abstract class Snapshot() {
...
}
public abstract class CommonRS<R extends Resource, S extends Snapshot> {
/* This is the class that I want to dynamically assign Inheritance to. */
...
}
@Entity
public class FeedResource extends CommonRS<Resource> {
...
}
@Entity
public class FeedSnapshot extends CommonRS<Snapshot> {
...
}
Причина, по которой я хочу это сделать, заключается в том, что FeedResource должен наследовать от Resource, а FeedSnapshot должен наследоваться от Snapshot, поскольку оба класса используют стратегию соединения JPA InheritanceType.JOINED
и сохраняются в разных таблицах.Однако они оба имеют общие атрибуты, и я хотел бы, чтобы они могли наследовать эти общие атрибуты.
Я понимаю, что могу использовать @Embeddable на CommonRS и встроить его в FeedResource и FeedSnapshot.
Поскольку Java не поддерживает множественное наследование, я не вижу никаких другихспособ сделать это, кроме использования Embeddable.
Заранее спасибо.