Na minha opinião, a principal vantagem dos annotations é as facilidades que um Eclipse da vida te proporciona: auto-complete e detecção do erro de código logo que você digitou facilita MUITO.
Num projeto no qual terminei agora onde tenho mais de 100 classes mapeadas pro hibernate a quantidade de arquivos (HBMs) que nao teria de criar ( mesmo usando XDocler) e dar manutencao seria uma vantagem. Esta tudo na minha classe no mesmo lugar.
Por que? Por mais que o XDoclet cubra 90% das configurações do Hibernate ele nunca vai cobrir 100%.
Ajustes finos na configuração. O XDoclet não lhe permite fazer muita coisa, que se você fizesse teria um ganho considerado. Uma vez que o XDoclet não suporta, e nunca vai suportar (é impossivel), muita coisa na hora de criar as suas classes você vai sempre pelo que existe no XDoclet, não pelo que existe no Hibernate.
Vamos lá, uma vez que você aprenda o XML do Hibernate é molezinha configurar aquilo. Ainda mais com uma Hibernate IDE da vida.
Se vocês mesmo assim resolverem usar o XDoclet, pelo menos usem o XDoclet 2.
[quote=plentz]Sim Sérgio. Na verdade, não é totalmente sem configuração. Usando annotations você ainda assim precisa declarar seus beans no hibernate.cfg.xml, mas não passa de uma linha:
Arrays e Maps por exemplo, e um bocado de atributos.
Acredite em mim, eu sou um committer do XDoclet2/Generama e junto com o Konstantin desenvolvedor do plugin para o Hibernate. Hoje eu não uso mais o XDoclet, logo não participo mais do seu desenvolvimento.
Criação de arrays e maps. Da uma olhada na documentação do Hibernate e procura pelas funcionalidade no XDoclet. Vai ter um monte, as principais, mas não todas.
Algumas agente não implementou por que não dava. Faz mais de um ano que abandonei o XDoclet depois de usa-lo intenssamente. Hoje estou muito feliz com o hbml.xml ou então annotation.
[quote=Kenobi]
O fator principal para não adotarem o 5 está com a IBM - Websphere e suporte ao novo JEE 5 .
Assim que a IBM soltar release, muita coisa muda por aqui … [/quote]
Aliás, veja se o seu chefe começa a cobrar os seus colegas a não usar as palavras-reservadas do Java 5.0 em código Java 1.3 e 1.4. Já vi muito código respeitável que era assim:
for (Enumeration enum = ... bla bla bla) {
}
Para migrar isso para o Java 5 é fácil (trocar o identificador enum por alguma outra coisa, digamos $enum para não bater com absolutamente mais nada nos seus programas), mas dá um monte de trabalho, e principalmente vocês vão ter de retestar tudo.
mas respondendo a pergunta. sim, hibernate eh simples. acho que desde sua criacao eh a solucao mais simples que resolve os 90% dos problemas que eles dizem resolver seja, na epoca, atraves de java ou xml, ou agora, atraves de annotations.
ps: desde quase sempre era possivel fazer td programaticamente, sem xml nenhum.
config.addClass eh o que ha…
[quote=plentz]Ah, mas dai dependendo da quantidade de classes que você tiver mapeada, IMHO, fica bem feiinho
Mas que dá, isso dá.[/quote]
‘Feinho’ eh diminutivo de Fernando. :mrgreen:
addClass rula, pq vc pode agrupar diversas areas diferentes do seu dominio em metodos separados (addLegacySchemaClasses, addMigrationSchemaClasses, addIceCreamFactoryClasses, e por ai vai), e ir construindo a configuracao a partir de codigo eh sempre bom pra sua IDE, que vai saber refatorar seu codigo sempre.
Hum, pensando por esse lado de refatorar e deixar a IDE a par da zona toda até que concordo.
Na verdade, o principal motivo de estarmos usando o xml no projeto que estou agora (mas que pode tranquilamente ser trocado), é que peguei o Hibernate tools, mandei fazer a engenharia reversa da base (e já era um monstrinho de 500+ tabelas) e ele de quebra já gerou o xml pra mim. :mrgreen:
LOL
Como eu sempre digo, quem não gosta de XML é newba. Hibernate é bom a beça, e ele já faz isto há long time ago. Hibernate é um dos melhores frameworks de persistencia já feitos, usa XML pois XML é o padrão de definição para qualquer framework respeitável.