ЖМ>Хм. Юзаем ORM. Объектную модель Java отображает на реляционную схему. Или на xml. Или вообще куда хочешь. Сколько угодно сложную объектную модель на сколь угодно сложную реляционную схему. Отображение настраивается. Приватный пустой конструктор по умолчанию должен быть, но неудобств не испытываем. Геттеры-сеттеры не обязательны, ORM юзает рефлексию.
Как раз XML и базы данных я предпочитаю избегать если нет жесткой необходимости. Почему? Вот
здесь есть сравнение конфигурации на основе Snow с JSON и обычного Spring с обычной кучей XML. По-моему вариант с JSON нагляднее.
А что за реализацию ORM используете? И дружит ли она с представлениями данных, более наглядными чем XML?
Пустые конструкторы и инициализацию после создания объекта стараюсь избегать, т.к. класс хорош когда любой созданный экземпляр готов к работе. А если его надо еще потом "допиливать" и можно "недопилить" и получить проблемы, то зачем такой класс? К тому же, отсутствие кучи модификаций позволяет использовать final поля. Это тоже хорошо.
Конечно, случаи бывают разные и не всегда такой подход вообще возможен.