Oi pessoal, tenho uma Classe na minha BusinessObjects Customer e CustomerContainer e na minha DatabaseObjects tenho a Classe CustomerDAO, além dessas camadas tenho a camada de GUI (com GuiCustomer) e a camada Model (com CustomerModel)…agora é o seguinte, queria fazer um esquema de validacao dinamico, sem que eu precisasse ficar verificando na minha GUI se o valor foi digitado corretamente ou nao. Pelo que sei o mais correto, é a validacao do Objeto, ou seja: se tenho a propriedade Name e DateOfBirth na minha Classe Customer, como validaria isso de forma dinamica?
No caso se nao for valid criar uma lista com os erros gerados numa Collection e se o tamanho dessa Collection entao for > 0 entao mostrar essa lista de erros.
Tem alguma Pattern de validacao que seja interessante eu dar uma olhada?
muito obrigado garcia, vou dar uma estudada a respeito. infelizmente ainda nao tive experiencia com hibernate, mas qualquer dúvida posto aqui de volta!
Mesmo o nome tendo Hibernate no meio, não tem nada a ver com o Hibernate. A JSR303 com o nome Bean Validation permite que você use esse tipo de coisa, e o Hibernate Validator implementa a JSR303.
groh, como eu falei lá no meu primeiro post, o Hibernate Validator funciona para qualquer coisa, seja ambiente web como desktop. E mesmo o nome dele sendo Hibernate Validator ele roda sozinho, sem precisar do Hibernate.
O Hibernate Validator implementa a JSR303 (te passei o link logo acima). Essa JSR303 especficia uma forma de validar um bean a partir de anotações. Um exemplo é algo como querer validar um cliente e dizer que, por exemplo, o nome não pode ser nulo.
public class Customer {
@NotNull
private String name;
}
Para chamar a validação você precisa iniciar a factory do validator:
[code]// inicia a factory
ValidatorFactory factory = Validation.byDefaultProvider().configure().buildValidatorFactory();
// aqui você valida seu objeto, e retorna uma lista com os erros de validação
final Set<ConstraintViolation<?>> violations = validator.validate(bean)
[/code]
garcia mto obrigado pela atencao…estou até agora tentando usar esse validator no meu projeto, pelo que andei lendo é mesmo muito mao na roda! baixei o Hibernate Validator 4.0 Beta 1, mas quando adiciono o .jar na minha Library e chamo por import:
import org.hibernate.validator;
recebo um aviso de erro que em [color=red]org[/color] onde diz que essa biblioteca nao existe, ou algo assim!
estou tentando aprender também o que é classpath, pra ver se consigo registrar o .jar la, mas por enquanto sem chances! rs…
uma hora sai…
baixei um tutorial que explica, mas com a versao do Validator 3.0, vamos ver o que vai dar!!!
olha, consegui de alguma forma acoplar o validator ao meu projeto. o problema é que nao sabia que tinha que adicionar a pasta /lib na minha Library. Pensei que somente o .jar resolvesse, mas tudo bem! Agora funciona, porém nao consigo chamar o Abstract Factory. Aqui esta minha classe cliente:
(nao esquente com a nomenclatura, esta em alemao e Kunde significa cliente)
Acho que esse último erro quer dizer que você não possui o jar que contém a classe javax.validation.Validation. Você vai precisar adicionar também o jar validation-api-1.0.0.GA.jar que vem junto com o hibernate-validator.
Não use a documentação do Hibernate Validator 3 para o Hibernate Validator 4, pois são completamente diferentes. Nos links que eu te passei logo lá encima tem a documentação do 4.
Quanto ao resto dos teus códigos, está tudo certo, você aprendeu mesmo como fazer. Basta agora você importar aquele jar e tudo vai funcionar.