Я обычно позволяю Hibernate генерировать DDL во время разработки, а затем создаю сценарий переноса SQL вручную при развертывании на тестовом сервере (который я позже использую также для UAT и живых серверов).
Генерация DDL в Hibernate вообще не поддерживает перенос данных, если вы только добавляете ненулевое поле, генерация DDL вам не поможет.
Мне еще предстоит найти действительно полезную абстракцию миграции, чтобы помочь с этим.
Существует несколько библиотек (см. этот вопрос SO для примеров), но когда вы делаете что-то вроде разделения существующей сущности на иерархию с использованием объединенного наследования, вы всегда вернуться к простому SQL.