Não entendam como uma provocação ou flamewar, longe disso, é que de uns tempos pra cá eu venho usando tão apenas o hibernate-annotations e não uso mais hbm. Gostaria de saber quem ainda usa, e os motivos pelos quais ainda usam. Tudo na mais repleta paz, só pra ver se vejo um motivo ainda pra reconsiderar usar, e que possamos discutir toda essa questão.
Enfim, quem ainda usa os hbms? E por quais motivos não adota annotations?
:arrow: O Hibernate não precisa de fazer análise gramatical em XML, consequentemente a inicialização é mais rápida;
:arrow: As IDEs podem facilmnete validar e destacar as anotações, pois as mesmas não passam de tipos do Java;
:arrow: Há maior flexibilidade no desenvolvimento, especialmente em refatorações;
:arrow: É type-safe
:arrow: Auto complemento e checagem em tempo de compilação
:arrow: Menos verboso que xml ou xdoclet
A maior desvantagem, ao meu ver, é quando você precisa reaproveitar estas classes de domínio em ambientes onde não se utiliza ORM/JPA e, obviamente, anotações não existem em versões anteriores ao Java 5.
Também vejo mais como gosto, cada um tem vantagem e desvantagem. Prefiro Anotações e as vantagens dela já foram citadas, mas as maiores vantagens que vejo no hbm que eu vejo: a classe fica mais ‘limpa’ e a possibilidade de atualizar o arquivo sem precisar recompilar a classe, o que em algumas situações críticas podem fazer toda a diferença.
Nunca enxerguei as anotações como poluidoras, pra mim até facilitam enxergar os relacionamentos. Quanto ao hbm, a única vantagem que me lembro eram as queries, elas sim poluem o código.
eu uso hbms…concordo com o citado acima sobre a “poluição” kkkkk… para mim, parece que fica mais organizado… tem os beans…os mapeamentos xml onde estão as tabelas com seus campos e as queryes…
eu nao uso hbm, ja usei, e depois dos annotations tomei raiva do hbm, ta louco, olhar aqueles arquivos xml é muita mão na manutenção, annotations muito mais simples e nao acho que prejudica o code não, ainda mais e a classe tiver bem refatorada, fica show.
Se o servidor tiver a opção de auto-deploy ele atualiza sozinho, senão você terá que reinicia-lo. No meu caso lembro que eu tinha uma query (view dinâmica) no arquivo de mapeamento que precisou ser modificada, dai foi só alterar o hbm.
O JPA até onde eu sei não permite mapeamento via hbm ou outra forma de XML, mas o hibernate em sí permite, tanto hbm (xml), anotações quanto XDoclet, fica ao gosto do freguês.
não gosto, mas fazer o q… está fora da minha alçada mudar isso.
Acho muito melhor usar anotações, afinal os relacionamentos ficam explícitos na sua classe, se precisar alterar é só mexer ali mesmo.
Em vez de fazer como eu, procurar em 2000 arquivos XML, então abrir o outro hbm que referencia o relacionamento, então abrir a classe java, enfim… horrível.