Hola,
No se a lo que llamás bastante, pero hoy por hoy xml hay menos que antes, podés generar tus entidades con annotations.
Hibernate se usa para lo que nombrás en .NET.
Para lo que lo veo muy bueno, tanto hibernate como
JPA, es la orientación a objetos y por ende la facilidad para afrontar la escalabilidad de la aplicación, otra característica es que te desliga de mucho código SQL.
Por supuesto que hibernate no es infalible y no debe usarse en todos los casos.
Saludos