Я предлагаю использовать конструктор для установки состояния ваших объектов по умолчанию.Hibernate это ORM.Основная философия заключается в том, что вы сохраняете свои объекты .Использование значений по умолчанию на стороне СУБД может подорвать всю концепцию, позволяя сохранять объекты в недопустимых состояниях.(Предоставляя возможность значениям поля пропускать методы setter ).
С другой стороны, когда вы создаете экземпляр объекта, его поля уже инициируются (для нулевого значения, нуля или пустой строки).и т. д.) Hibernate не сможет угадать, хотите ли вы сохранить фактический ноль или ноль или вместо этого использовать значение по умолчанию БД.
Когда вы говорите о значениях по умолчанию на уровне СУБДЯ полагаю, вы думаете о примитивных ценностях.Нет абсолютно никакого недостатка в инициализации примитивных полей на стороне Java (внутри конструктора или по объявлению).