Это не недостаток Hibernate, auto-ddl
предназначен для создания схемы из модели, а не для ее обновления. Причина в том, что, как вы уже поняли, это редко бывает простым и может потребовать некоторого «массирования» данных.
Я бы не сказал, что это обычная практика - менять типы данных в производственных системах, но это, безусловно, верный сценарий, в котором можно оказаться. В мои годы мне приходилось делать это несколько раз, хотя обычно это что-то столь же тривиальным, как увеличение размера varchar
или изменение с date
на datetime
. Переход с BigInteger
на String
кажется немного необычным, и я хотел бы спросить, как вы попали на эту позицию, это может указывать на проблему с дизайном.
В любом случае, решение состоит в том, чтобы изменить тип данных в базе данных, что не должно быть проблемой, а затем изменить отображение Hibernate
, чтобы отразить это изменение.