Hibernate : Annotation ou xml?

12 respostas
proteus_adi

Estou me ambientando com o Hibernate.
Lendo os vários artigos e tópicos sobre o assunto, vi que tenho a possibilidade de implementar com annotations e com xml.
Mas ainda não tenho a vivência pra me ditar as caracteristicas e vantagens de cada um.

Dai vem a dúvida.

Annotation ou xml?
Qual é melhor pra que?

12 Respostas

robson_oliveira

Boa noite…

Desculpe mas eu não entendi a sua pergunta, a sua intenção e saber se vc deve usar as anotações ou o xml em hibernate, foi isso…

No Hibernate vc tem que fazer o uso dos dois.
Por exemplo, depois que vc criar a sua classe, vc tera que Mapear a classe atraves de um arquivo NomeDaClasse.hbm.xml

E as anotações vc vai usar independente do xml…

Se nao foi essa a sua pergunta, desconsidere, boa noite…

proteus_adi

Boa nte…
rsrs**

A pergunta é: Por que deveria usar annotation no lugar dos xml?

Qual a vantagem de cada um? Existe? Existe diferença?

ranophoenix

Há muito tempo isso não é mais necessário:

http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#entity-mapping

proteus_adi

Pois eh, cara…
Com o uso de annotations…

A dúvida é exatamente essa…
rsrs**
Quando compensa ou não compensa usar Annotations.

BrenoSalgado

acho que usar annotations é simplesmente melhor que xml… não vejo muita vantagem em trocar os annotations por xml
minha opinião né :stuck_out_tongue:

Lenin666

E ae carinha…
Então, eu penso que quando vc está introduzido em um projeto realmente grande, annotations é mão na roda. A verdade é que quem é muito chiita repudia “evoluções”, mas a grande verdade é que annotations é uma grande evolução. Mas sendo mais específico à sua pergunta, o hibbernate pelo que conheço, por definição, ele se faz necessário a utilização de annotations, mas posso estar enganado, pois nunca peguei nenhum projeto com utilização do hibernate. Oque posso dizer de annotations é sobre ejb. Quem já trabalhou com EJB 2 sabe bem oque é evolução para ejb 3 no quisito annotations.
Espero ter ajudado.

fantomas

Fala proteus,

Por algum tempo este tipo de dúvida gerou bastante discussão, depois não se falou muito sobre isso; entendi que a idéia do annotations venceu rsrsrsrs. Me lembro que os amantes de xml constumavam dizer que o annotations “poluiam” e descaracterizavam o código.

Na minha opinião vale a pena utilizar o annotations, mas vale a pena dar uma boa olhada nas indicações fornecida pelos livros / tutoriais dos caras, porque existem coisas curiosas neste sentido como por exemplo, se for feita a mesma definição em xml e em annotations a definição feita em xml é que será considerada, se não me engano é isso tem mais detalhes mas não me lembro.

flws

robson_oliveira

Para os programadores que não gostam de trabalhar com configurações de mapeamento em XML, o
Hibernate dá a opção de mapeamento com anotações. O suporte para anotações em classes surgiu a
partir do Java 5 (1.5).
Anotações (Annotations) são entendidos como metadados da classe que são acessados em tempo de
compilação ou execução, e podem ser de classe, atributos ou métodos.
As versões mais novas do Hibernate fazem uso das anotações para mapeamentos de entidades. Com isso,
não precisamos mapeá-las em arquivos XML.
As bibliotecas e documentações para anotações vêm separadas no projeto Hibernate. Para trabalharmos
com anotações devemos fazer o download do Hibernate Annotations.

Prefiro fazer uso das anotações do hibernate pelo motivo de abstração da complexidade de configuração do xml…

Eu não usei com frequencia o hibernate, mas o pouco que usei lembro que vc usa as anotações e o mapeamento da classe vc utiliza atraves do xml (NomeDaClasse.hbm.xml).

Hoje com frequencia utilizo o “JPA”, que elimina a edição do “XML” que é uma camada de abstração, portanto necessita de um provedor de persistência. Por exemplo, Hibernate e Oracle Toplink…

Espero ter contribuido, bom dia…

proteus_adi

Eu também partilho da ideia de que os annotations “poluem” o código.

MAAAS,
Se é uma tendência, melhor eu me adaptar a ela…
rsrs**
É melhor me acostumar com ela então…

Pelo que eu entendi não há vantagem nenhuma em nenhum dos modos.

fantomas

Eu vejo como principal vantagem o fato de vc não ter mais um arquivo no esquema (o mapeamento xml), como vc tem tudo descrito em um único arquivo (a classe java com as anotações) fica um pouco mais fácil e produtivo ao analizar / implementar as coisas.

No começo parece estranho mas depois que vc fizer a segunda ou terceira classe com anotações verá que sua opinião começara a mudar sobre este assunto.

flws

tnaires

Olá

Eu vejo duas vantagens em usar xml no lugar de annotations:

  1. Quando usamos annotations, misturamos código que modela o domínio do problema com código de persistência. Isso pode ser uma desvantagem para alguns. Usando xml, fica tudo separadinho.
  2. Há controvérsias na comunidade se seus POJOs que modelam as classes de domínio continuam POJOs após passarem a depender de javax.persistence.*. Novamente, não há esse problema com xml.

Porém, nenhuma dessas vantagens me fez deixar de usar annotations.

I

Alo pessoal!

Antes de mais, eu estou me ambientando com o Hibernate e por isso se eu disser alguma besteira aqui, me desculpem!

Estive lendo sobre Hibernate Annotations em vários sites…

Um deles:
http://simundi.blogspot.com/search/label/hibernate

Quero ficar com uma ideia mais clara:

O autor diz “As mais famosas implementações JPA são Hibenate e TopLink, existem outras.”

  1. O Hibernate Core não é uma implementação do JPA. Correcto?
  2. O Hibernate Annotations é. Correcto?
  3. Se eu estiver utilizando o Hibernate Annotations, posso claramente dizer que estou utilizando o JPA???

É que eu vejo em muitos sites a dizerem Hibernate ou JPA… O que me deixa um pouco confuso! Será que o JPA e o Hibernate são alternativas???

Por exemplo neste artigo:

Irshad

Criado 28 de junho de 2009
Ultima resposta 30 de jun. de 2009
Respostas 12
Participantes 8