Вы можете использовать стратегию MappedSuperClass или JoinedTable, если вы хотите следовать реальному способу ORM сделать это. Но это идет с ценой. С этими стратегиями связаны другие накладные расходы, такие как ограничение запросов и больше соединений на запрос и т. Д.
Если вы денормализуете таблицы, вы можете использовать стратегию фильтрации данных (я думаю, что поддерживаются только hibernate). Но теперь у вас есть все в одном классе, и это может быть более серьезной проблемой.
Поскольку вы используете REST, вы, вероятно, хотите обслуживать / api / Vehicles / 1 (исправьте меня, пожалуйста)
Для таких сценариев легче выполнить это, используя таблицу «Транспортное средство», в которой содержится «тип». Вы можете использовать сериализатор Джексона, чтобы опустить все ненулевые компоненты. Таким образом, в случае автомобиля, атрибуты транспортного средства и параметры автомобиля будут введены, но нулевые значения в грузовике, автобусе и т. Д. Будут опущены.