EJB(SessionBean) validação de campos

Galera estou com uma duvida…

Nos SessionBean deveria ter validação de dados ou só repassando para a camada de acesso a dados…?

SesionBeans:
Código:

public void inserir(Cliente a){
if(a.getNome()==null){
levante esceção…
}else{
insira no banco…
}

}

ou

trato a validação no cliente e mando para o ejb já tratado…

public void inserir(Cliente a){
insira no banco…

}

[/code]

As duas coisas! Nao deixar o cliente mandar lixo pro EJB é muito importante, mas fazer com que o EJB não aceite lixo também é essencial :wink:

Dê uma pesquisada no commons-validator, e veja se ele não pode te ajudar aqui. :wink:

E até penso o seguinte, validação tem q acontecer nas 3 camadas

  • Banco (Constraints)
  • AS
  • Cliente

Assim, em alguns casos a mesma validação acontecera nas 3 camadas, como esta sua de verificar se o nome é branco, e algumas serão especificas para uma determinada camada.

Estou perguntando de regra de valição que deveria ser no cliente…tipo se nome e endereço for obrigatorio… isso não deveria ser tratado no cliente…e o EJB tratar as regras de negocio…como fazer calculos…e etc…

vocês não acham??

Pois acho que o EJB é para cuidar das transações…, segurança e etc…e não regra de validação com o cliente…

Queria que todos postassem suas opiniões…

muito grato a todos

Eu até concordo com cv…acho que nos deveriamos cuidar para “nao deixar passar”… e tbm cuidar “se passar…”…

mas tbm concordo com vc cara…por exemplo…acho que se vc utilizar struts…por exemplo…(DynaActionsForms…) vc ja estará previnindo as duas formas…tanto validacao no lado do cliente (javascript) quando no lado do server…

nesse caso nao vejo porque minhas regras terem que ficar se preocupando com isso…

tbm gostaria que todos discutissem esse topico.a.cho muito importante…e isso deve ser levadoi muito em considercao na construcao de um projeto…

valeu!!

Queria mais opiniões do pessoal…pois esse topico é bem interessante nos projetos futuros…

espero a contribuição de todos…

Bem, acho que pelo fato de essa validação ser uma regra de negócio deveria estar na camada de regra de negócio (o problema é definir até onde ela é realmente uma regra de negócio… Por exemplo uma obrigatoriedade de um campo não deixa de ser uma regra de negócio). Mas acredito que a decisão pode depender de necessidades, as vezes vc quer um tratamento mais customizado que fica mais simples de ser implementado no cliente!!! Mas lembre-se que o amanhã não se sabe, e se vc fizer um outro sistema cliente, terá que refazer essa validação!!!

Hoje seu cliente é um site JSP, amanhã vc quer disponibilizar um cliente Swing que acessará os mesmos EJBs… E mais no futuro poderá ser acessado alguns módulos através de um celular com GPRS (por exemplo), ai vc terá que implementar essa obrigatoriedade em cada cliente, mas a regra é do negócio pois esse campo nunca poderá ser nulo!!!

Essa é a minha opinião, :wink: