A idéia do Menta é muito boa. Enquanto os outros frameworks usam annotations, tudo é full Java. Boa pq não polui as classes com penca de anotações.
Como sempre digo: todo mundo amava XML e entupia os projetos de XML, então um dia alguém se revoltou e inventou as anotações. Agora poluimos nossas classes com anotações.
Com essa abordagem do Menta e, conforme você citou, de usar configuação do Hibernate em full Java mode é muito boa, pois usamos somente Java, que é o que fazemos melhor. Esse hibrido de XML + Java não agrada a mim também.
Mas não creio que essa idéia seja absorvida não. Dá bastante trabalho fazer isso. É bem mais simples anotar uma classe com @Entity e as propriedades com @Id (lembrando que apenas esses dois são obrigatórios).
Em Java mapeamentos são configurados com annotations, não faz sentido ter isso em “configuração programática”.[/quote]
i++
Embora falam que Annotations polua o código Java, eu acho ela mais elegante que configuração programática (isso é minha opinião). Para mim, não seria vantagem alguma ter configuração programática já que temos annotations
Em Java mapeamentos são configurados com annotations, não faz sentido ter isso em “configuração programática”.[/quote]
i++
Embora falam que Annotations polua o código Java, eu acho ela mais elegante que configuração programática (isso é minha opinião). Para mim, não seria vantagem alguma ter configuração programática já que temos annotations[/quote]
Eu acho que para os casos simples onde vc só precisa de uma ou duas anotações para fazer isso eu concordo.
Agora quando a coisa fica mais complicada e vc começa a “poluir” o seu código com muita anotação eu prefiro configuração programática numa classe separada.
Eu uso annotations, mas particularmente se houvesse uma maneira melhor eu usaria. Detesto poluir a entidade com essa pilha de anotações, mas isso é só uma questão pessoal.
Saoj, somos da mesma opinião. Esse exemplo que você mandou é um dos exemplos onde trocamos a poluição do XML pela poluição das annotations.
Tenho um projeto aqui que uso praticamente o @Entity, @Id, @Column e os @Many-to-* ou @One-to-*. Uso o @Column apenas para visual, pois gosto de “saber” os campos anotados.
Porém se você usar Hibernate annotations + Hibernate Search + Hibernate Validator… seus POJOs vão ficar tão poluídos…
Ai que está Sérgio. No caso do Struts 2 eu até concordo que muitas configurações podem realmente “sujar” o código, porém no caso do Hibernate (eu tenho usado ele por muito tempo e atualmente estou em um projeto bancário usando o Hibernate, com milhões de entidades, relacionamentos e etc) eu nunca passei por uma situação onde as annotations, de fato, poluiria o código.
Sem contar que com annotations dentro da classe você sempre sabe quem é quem, quando a configuração fica fora, você tem que ficar indo e voltando pra saber o que está acontecendo e o que está ou não configurado.
Detesto ter informações sobre a mesma coisa espalhadas em lugares diferentes.
Povo do NHibernate tá viajando grandão. Desde a primeira versão do .NET existe suporte a Attributes (Annotations no Java). Essa configuração programática é uma viagem só.
Estou comparando com todos que não utilizam configuração programática. Um exemplo clássico de uma grande vantagem da configuração programáica é poder usar diretrizes como IF e FOR na configuração. Imagina que no Hibernate vc tem que configurar/mapear 30 campos (texto1, texto2, texto3, etc.) Um for programático resolve isso em duas linhas.
Aí é que está, se você tem 30 campos de texto pra mapear e eles não tem nenhuma configuraçao especial, você não precia fazer nada, nem botar nenhuma annotation, tudo é configurado sozinho. Agora convenhamos, 30 campos de texto num único objeto é forçar a barra, não é não?
Todos os outros frameworks baseados em action fazem a mesma coisa que o Struts faz, só com um pouco mais de firula ou menos configuração. Mas a idéia básica continua sendo a mesma.