В аннотациях почти ничего нельзя сделать в XML. Я даже не могу думать ни о чем. Вы можете попробовать соответствовать JPA, но я обнаружил, что JPA API довольно ограничен. Тем не менее, это просто означает, что вы используете нестандартные аннотации, специфичные для Hibernate.
Есть несколько комментариев, в которых говорится, что спящие аннотации загрязняют ваши доменные модели, но в любом случае они тесно связаны с макетом вашей базы данных. В любом коде, который не управляется базой данных, вам все равно потребуется создать промежуточный уровень. Фактически, IMHO, многие веб-приложения должны использовать объекты промежуточных значений, которые копируют только данные, необходимые для уровня представления. Вместо этого многие используют открытую сессию в виде antipattern.
Наконец, хотя конфигурация xml является гибкой, обычная практика показывает, что всякий раз, когда мы редактируем файлы xml, мы почти всегда также редактируем исходные файлы java. Это просто еще один аргумент для перемещения конфигурации ближе к объектам, то есть в аннотации.