Anotaçoes JPA nos Getters ou Setters? Onde voce Anota?  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
Andre_JavaWorld
JavaTeenager
[Avatar]

Membro desde: 29/06/2007 12:48:07
Mensagens: 166
Localização: Saint Cyr L'ecole, France
Offline

Bom dia Pessoal,


Acompanhado o blog da caelum, deparei um tema um tanto curioso: http://blog.caelum.com.br/2007/06/25/jpa-anotacoes-nos-getters-ou-atributos/ , sei que como esta descrito no proprio blog, é um assunto até certo ponto banal, porem eu pelo menos numca vi ninguem anotar getters, alguem aqui anota? quais seriam as possiveis (por menores que sejam) vantagens de se anotar um getter ao invez de um atributo?


Abraços

André Martins

[Email] [MSN]
Cristiano de Barros
JavaBaby
[Avatar]

Membro desde: 16/03/2008 21:11:04
Mensagens: 78
Localização: Florianópolis
Offline

Olá,

No meu trabalho as anotações são todas feitas nos getters, porém eu prefiro nos atributos, eu acho que fica mais fácil de visualizar.
Em relação a diferença, acho que é só questão de costume, nos livros/artigos que li, não era citada nenhuma vantagem nem de um nem de outro.

Abraço
Andre_JavaWorld
JavaTeenager
[Avatar]

Membro desde: 29/06/2007 12:48:07
Mensagens: 166
Localização: Saint Cyr L'ecole, France
Offline

Tambem tenho esta visao Cristiano,


Porem se levarmos em conta que o hibernate ira utilizar reflection para ler nossos campos, ele ira ler o getter, e nao o atributo em si diretamente (me corrijam se eu estiver errado!), dai a questao de uma possivel performance ou vantagem em situacoes particulares, so que nao vi nada mais pratico ou detalhado sobre o assunto.


Obrigado pela Resposta Cristiano, mais alguem?

Abraços

André Martins

This message was edited 1 time. Last update was at 24/09/2009 09:56:11


[Email] [MSN]
roger_rf
GUJ Master

Membro desde: 29/04/2009 07:40:19
Mensagens: 1091
Localização: Natal/RN
Offline

Eu anoto nos getters. Anotar diretamente nos campos pode lhe dar um pequeno ganho de desempenho, mas normalmente é um ganho tão discreto que não chega a fazer diferença. Prefiro usar os getters porque dessa maneira o Hibernate (ou qualquer outra solução de JPA) usará a mesma semântica de acesso a dados que o desenvolvedor usa nas demais seções da aplicação.

Andre_JavaWorld
JavaTeenager
[Avatar]

Membro desde: 29/06/2007 12:48:07
Mensagens: 166
Localização: Saint Cyr L'ecole, France
Offline

Ola Roger,


Nao entendi quando voce disse " Prefiro usar os getters porque dessa maneira o Hibernate (ou qualquer outra solução de JPA) usará a mesma semântica de acesso a dados que o desenvolvedor usa nas demais seções da aplicação." como assim usara a mesma semantica? esta falando de relacionamentos?



Abraços

André Martins

This message was edited 1 time. Last update was at 24/09/2009 10:13:53


[Email] [MSN]
roger_rf
GUJ Master

Membro desde: 29/04/2009 07:40:19
Mensagens: 1091
Localização: Natal/RN
Offline

Nem tanto os relacionamentos, mas realmente a forma de acesso. Por exemplo, numa caixa de diálogo ou página Web você pode usar "cliente.getNome()" para ler o nome do cliente. Se o Hibernate usar "cliente.nome", lendo o nome do cliente diretamente a partir do campo em vez de usar o get(), então estará usando uma semântica diferente daquela do desenvolvedor, que usou get() na interface gráfica. Assim, procuro fazer com que todas as áreas da aplicação façam acesso às propriedades da mesma forma, usando get(), a menos que haja um motivo forte para que isso não aconteça.

Cherubini
JavaTeenager
[Avatar]

Membro desde: 07/03/2008 10:03:25
Mensagens: 155
Localização: São José dos Campos
Offline

Eu trabalho com Jboss Seam, e lá n tem jeito(pelo q vi e estudei e no servico nao consegui colocar nos atributos) tem q ser nos getters!!!


Thiago M.Cherubini

Quanto mais aprendemos mais temos que aprender!
renanreismartins
GUJ Ranger
[Avatar]

Membro desde: 19/09/2007 15:19:38
Mensagens: 807
Localização: São Paulo - SP
Offline

roger_rf concordo plenamente, aqui tive um caso onde precisei fazer conversao de tipos nos getters e setters (devido ao jpa nao persistir campos joda-time)...

abrassss

http://renanreismartins.blogspot.com/ - Para apaixonados por desenvolvimento de software
[WWW] [MSN]
Andre_JavaWorld
JavaTeenager
[Avatar]

Membro desde: 29/06/2007 12:48:07
Mensagens: 166
Localização: Saint Cyr L'ecole, France
Offline

Obrigado pelas respostas pessoal, mas qual conceito fez voces anotarem os getters, a grande questao é porque eu deveria anotar um getter e nao um atributo?

Abraços

André Martins

[Email] [MSN]
renanreismartins
GUJ Ranger
[Avatar]

Membro desde: 19/09/2007 15:19:38
Mensagens: 807
Localização: São Paulo - SP
Offline

Andre_JavaWorld anotar no getter faz com que sempre que o campo seja acessado, a logica presente no getter seja executada, se vc anotar direto no campo essa logica que pode estar no getter nao é acessada e pode quebrar o encapsulamento...

a questao é: se vc usa getters e setters sem nenhuma logica dentro, nao faz diferença.

abrassss

http://renanreismartins.blogspot.com/ - Para apaixonados por desenvolvimento de software
[WWW] [MSN]
Andre_JavaWorld
JavaTeenager
[Avatar]

Membro desde: 29/06/2007 12:48:07
Mensagens: 166
Localização: Saint Cyr L'ecole, France
Offline

Obrigado Renan, ficou claro agora o porque, obrigado pelas respostas de todos!


Abraços

André Martins

[Email] [MSN]
 
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Ir para:   
Powered by JForum 2.1.8 © JForum Team