в твоем примере почти уверена статусы имеют типы активный/заблокирован, или т.п., соответственно лучше использовать стринговые значения статусов "active", "ban", чтобы потом последующий код был читаемым, не 1,2,3, а "active", "ban", сами статусы в User хранить ввиде констант и отдельные методы setActive() , setBan() с присваиванием этих констант, в дто получается передается стринг где можно "assert choice" навеcить и валидировать.
Если используются статусы из бд как отдельный vo, то и передавай объектом Status с соответствующей типизацией