Это зависит от вас! Я не думаю, что есть лучший подход. Оба решения предназначены для одного и того же, то есть помогают Hibernate понять, как структурирована ваша база данных. Преимущество аннотаций заключается в том, что они доступны непосредственно в вашем файле класса Entity Java.
Было время, когда XML считался стандартом для определения информации о конфигурации. Начиная с Java 5, многие сведения, изначально находящиеся в этих файлах XML, теперь напрямую хранятся в классах с использованием аннотаций. Например, Spring 3.x
framework или Java EE 6
теперь используют аннотации.