То, что использовать, может варьироваться в зависимости от того, что настраивается, как используется конфигурация, проектных / культурных соглашений и т. Д. Хорошая поддержка IDE делает использование более удобным и надежным.
Лично, хотя я использую и XML, и аннотации, я склонен предпочесть конфигурацию XML для многих задач, особенно в более крупных проектах. Например, в Spring я предпочитаю конфигурацию XML: проще управлять самой конфигурацией, наборами изменений конфигурации и изменениями, специфичными для среды (например, тестирование, на сервере и т. Д.), Когда она более локализована.
Для других конфигураций аннотации часто являются более подходящими и удобными. Для быстрых проектов с минимальной настройкой класса домена или без нее, аннотации Hibernate могут быть более удобными.
В конечном счете, это вопрос предпочтений и удобства, а не чисто технический. (За исключением случаев, когда XML и аннотации поддерживают различные функции; иногда один предлагает более полные возможности.)