Мне интересно, почему ваша база данных была смоделирована для использования десятичного типа с 0 шкалой, а не целочисленного типа? Поведение, которое вы видите (и упоминает «проблема» Паскаля), заключается в том, что hibernate естественно предполагает, что DECIMAL является типом с плавающей запятой, и сбивается с толку, когда вы настраиваете его как int.
Можно ли изменить тип данных в db2 на SMALLINT? Это, вероятно, заняло бы меньше места в БД (2 байта, а не 3) и было бы более логически согласованным.
Если нет, воспользуйтесь решением Паскаля.