Вы столкнулись с Несоответствием объектно-реляционного импеданса из-за соответствия между не полностью совместимыми системами.Поскольку наследование между таблицами в реляционной модели невозможно, вам придется пожертвовать чем-то в объектной модели, которая использует наследование.Будут крайние случаи независимо от того, что вы делаете, если вы не переключитесь на объектную базу данных .
Если вы определяете пользовательские операции CRUD в классах, которые расширяют Metric
, загрузка объектов может быть сложной.Что именно будет загружено Metric.get(id)
, если каждая таблица имеет свою собственную последовательность PK, и оба значения Rating
и Quantity
могут иметь одинаковое числовое значение PK.
Вы можете посмотреть, как JPA решает эту проблему.проблема.Он использует пользовательские аннотации, например @MappedSuperclass
и @Entity
.Я думаю, что это форма проверки типа.