In theory, all of this filtering logic could go to the Jackson classes doing the filtering, that would help leave the AbstractHibernateObject a little cleaner and just carrying the filter data/mode.