o Hibernate nao valida nem voce colocando @NotNull nestes tipos de campos @ManyToOne trago os dados destes campos na tela em uma selectBox se usuario nao selecionar vai dar exception muito gigante entao o que fazer tem um jeito hibernate validar isso?
Cabe lembrar bem que, como o Lucas já falou, você precisa invocar manualmente o validator caso você queria que o vraptor faça validação. Aliás você está usando o Hibernate Validator 3.x ou o Validator 4.x, que é baseado no Bean Validator?
Ainda ontem mandei um componente que escrevi que faz as validações para o Bean Validador / Hibernate Validator 4.x. Se você está usando essa versão terá de esperar um pouco.
Outra coisa que vale lembrar é que o hibernate chama automaticamente essas validações, assim você na verdade está delegando a validação ao Hibernate e não ao Vraptor, sendo assim o problema nem seria do Vraptor, mas sim do Hibernate.
[quote=Lucas Cavalcanti]@diogo
essa validação que vc falou é do vraptor2… o jvds está usando o VRaptor3…
@jvds
você está colocando na sua lógica que adiciona:
validator.addAll(Hibernate.validate(objeto));
??
tenta colocar o @NotNull e essa linha antes da parte de validação e vê se funciona…[/quote]
Ja coloquei @NotNull e nao funciona e ja tem antes de gravar o validator.addAll(Hibernate.validate(objeto)) o @NotNull so esta funcionando para campos do tipo primitivo ja quando e uma entidade nao.
[quote=garcia-jj]Cabe lembrar bem que, como o Lucas já falou, você precisa invocar manualmente o validator caso você queria que o vraptor faça validação. Aliás você está usando o Hibernate Validator 3.x ou o Validator 4.x, que é baseado no Bean Validator?
Ainda ontem mandei um componente que escrevi que faz as validações para o Bean Validador / Hibernate Validator 4.x. Se você está usando essa versão terá de esperar um pouco.
Outra coisa que vale lembrar é que o hibernate chama automaticamente essas validações, assim você na verdade está delegando a validação ao Hibernate e não ao Vraptor, sendo assim o problema nem seria do Vraptor, mas sim do Hibernate.
Não tem como funcionar apenas para primitivos e não para objeto. Você pode postar aqui a sua entidade, ou se ela for muito grande, postar a parte onde ela está anotada?
é vc estar usando o @NotNull de um pacote que não é o do Hiberante… se vc estivar importando o com.sun.istack.internal.NotNull então esse é o problema… o correto é
é vc estar usando o @NotNull de um pacote que não é o do Hiberante… se vc estivar importando o com.sun.istack.internal.NotNull então esse é o problema… o correto é
Eu estou importando do Hibernate mesmo cabei de verficar esta correto meu problema e o campo idtipooperacao.
O que eu ainda não consegui entender é se o @NotNull não funciona para objetos ou entidades. Você disse que funciona apenas para primitivos, então se você tiver um campo Date não funciona? Ou você quer dizer que não funciona apenas para entidades?
@NotNull
@Temporal(TemporalType.TIMESTAMP)
private Date creationDate;
Conforme a documentação do Bean Validator:
Eu tenho aqui em uma entidade Customer uma propriedade owner, e está funcionando a validação:
Porém ela apenas valida se o campo owner é null ou não. Caso você queria que o validator faça também a validação do bean Branch é necessário usar o @Valid.
Procurei pela documentação do Hibernate Validator 3x mas não achei. Meus comentários são baseados no 4x.
O que eu ainda não consegui entender é se o @NotNull não funciona para objetos ou entidades. Você disse que funciona apenas para primitivos, então se você tiver um campo Date não funciona? Ou você quer dizer que não funciona apenas para entidades?
@NotNull
@Temporal(TemporalType.TIMESTAMP)
private Date creationDate;
Conforme a documentação do Bean Validator:
Eu tenho aqui em uma entidade Customer uma propriedade owner, e está funcionando a validação:
Porém ela apenas valida se o campo owner é null ou não. Caso você queria que o validator faça também a validação do bean Branch é necessário usar o @Valid.
Procurei pela documentação do Hibernate Validator 3x mas não achei. Meus comentários são baseados no 4x.[/quote]
Quero dizer que so funciona para Tipo Integer,String,Date so nao funciona quando e relacionamento @ManyToOne