Альтернативой является использование собственных запросов для непосредственного изменения сохраненной сущности.Если вы используете столбец дискриминатора, вы можете изменить значение, хранящееся в столбце для класса A, и изменить его на значение, необходимое для класса B. Вам также необходимо изменить существующие данные, чтобы они соответствовали новому классу.
Я упоминаю это как альтернативный подход, но я не говорю, что это обязательно рекомендуемый подход.Использование этой техники может вызвать проблемы с кэшированием и повлиять на любые живые объекты, которые могут существовать.
Упомянутый вами подход является одним из более чистых подходов, которые вы можете использовать в пространстве JPA.
РЕДАКТИРОВАТЬ
Этот подход работает для всех стратегий наследования.Для наследования JOINED и TABLE_PER_CLASS вам понадобятся запросы на запись, которые будут переносить данные между таблицами, а также любые изменения столбцов дискриминатора, которые вам, возможно, потребуется установить на основе используемой стратегии.
В долгосрочной перспективе этот подход может существенно повлиять на ремонтопригодность вашего приложения.Одним из преимуществ упомянутого вами подхода является то, что вы можете использовать рефлексию для быстрого копирования общих полей между двумя объектами, что упрощает техническое обслуживание в будущем.