наследовать только дочерний MappedSuperclass, но не родительский класс MappedSuperclass - PullRequest
0 голосов
/ 21 мая 2019

У меня есть базовый класс B.

@MappedSuperclass class B{}

@MappedSuperclass class D1 extends B{} //class D1 is really big
@MappedSuperclass class D2 extends B{} //class D2 is really big
@MappedSuperclass class D3 extends B{} //class D3 is really big
......
@MappedSuperclass class D10 extends B{} //class D10 is really big

И мне нужны NewD1, NewD2, NewD3 .. NewD10, все расширения D1..D10 минус B.

Теперь мне нужносоздать новый класс Класс NewD расширяет D, но не B {} // здесь я хочу расширить D минус B Может кто-нибудь подсказать, как я могу подойти к этой проблеме?

к сожалению, предложение @Mohannad не будет работать, как и яимея около 10 классов, наследующих B.

Я пробовал или рассмотрел следующее.- иметь класс D и B отдельно.- теперь создать NewD extends D extends B // но это не компилируется, так как множественное наследование не разрешено.

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Я закончил тем, что использовал обходной путь, поскольку ничто не обещает AFAIK для этого.

Я создал фиктивные столбцы (определенные в @MappedSuperclass class B {}) в таблице базы данных, соответствующей NewD1, NewD2, NewD2 .. NewD10.

Я предпочел это, так как считал, что наличие пустых столбцов в таблицах лучше, чем дублирование всего кода.

0 голосов
/ 21 мая 2019

Это невозможно в Java. У вас есть контроль над D & B?

Если вы это сделаете, я бы предложил перевернуть отношения. Сделайте D базовым классом, затем сделайте так, чтобы B наследовал от D, и тогда ваш класс NewD мог бы наследовать от D, но не имея B.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...