Hibernate XML ou Annotations?

O que é melhor de se utilizar hibernate core XML ou hibernate Annotations.???
Estou com dúvidas??Existe alguma diferença de performance ou produtividade/??

Não há uma ferramenta “melhor”, tudo depende dos requisitos da sua aplicação. Alguns comentários:

  • Anotar classes geralmente é mais rápido do que criar XML’s de mapeamento - afinal de contas, ao usar anotações, estará tudo no mesmo arquivo;
  • O desempenho será o mesmo, usar um ou outro método não resultará numa aplicação mais veloz;
  • Se usar anotações, você poderá usar suas classes anotadas juntamente com qualquer implementação do JPA (por exemplo, com o TopLink), não apenas com o Hibernate EntityManager;
  • A semântica e o comportamento de determinados mapeamentos é diferente entre anotações e XML.

Dito isso tudo, normalmente uso XML, pois para manipular bancos de dados antigos aqui da empresa tenho de usar chaves compostas que por sua vez contêm chaves estrangeiras, e a semântica do XML é mais adequada para isso do que aquela oferecida pelas anotações. Porém, para aplicações inteiramente novas, recomendo usar anotações. Uma coisa boa do Hibernate EntityManager é que você pode usar tanto classes mapeadas via XML quanto via anotações, usando uma ou outra técnica conforme a necessidade.

Filipe,

Assino em baixo tudo o que o Roger falou. Apenas acrescento que colocar anotações no código mistura o código da sua classe, que é um modelo orientado a objetos, com o modelo relacional do banco de dados. Mas isto não é necessariamente ruim, depende de cada projeto. Eu, pessoalmente, costumo usar XML externo. Além de separar as coisas, no XML é mais fácil entender o que está acontecendo.

Abraço

Concordo com o que disseram.

Em minha opinião, as anotações sempre me trouxeram mais produtividade.

Galera, muito obrigado por terem dicorrerem suas respectivas opiniões sobre o assunto.
Devo dizer que agora sim minha mente se abriu e vejo que ambas as formas de desenvolvimento, tem sua importância e características próprias.
Em razão disso, vejo que continuarei os estudos aprendendo à desenvolver utilizando as duas formas.

ATT,

Filipe Souza

Aprenda primeiro XML e dps parta para o annotations…

Seria melhor você saber dos dois jeitos…

Então passe o mais trabalhoso primeiro para dps vir a “melzinho na chupeta” haha

Porque você deve ter uma base dos dois… pq se tu conhece annotations e nao conhece o mapeamento por xml… se te pedirem uma hora pra fazer isso tu vai te da mal…

:smiley:

Começe sempre pelo mais trabalho… vai te ajuda mto mais dps!!

Annotations dá mais produtividade, depois que comecei a usa-lo discartei o xml