Vraptor 3.3.1 + VRaptor Validator + Hibernate

4 respostas
R

Pessoal,
Estou tentado fazer um cadastro de profissões em que id não pode ser repetido, mas deve ser inserido pelo usuário, então preciso verificar se essa profissão já existe no sistema. O meu grande problema é, mesmo que o hibernate não retorne objeto, a variável profissaoJaCadastrada não fica nula.


validação no controller

final Profissao profissaoJaCadastrada = dao.carrega(profissao.getCodigoCBO());

validator.checking(new Validations() {

{

that(profissaoJaCadastrada,IsNull.nullValue(),Código CBO,validator.registered);

}

});

validator.onErrorUsePageOf(this).novo(profissao);


Métododo do DAO

public Profissao carrega(Long id) {

return (Profissao) this.session.load(Profissao.class, id);

}

4 Respostas

R

Vivendo e aprendendo, consegui resolver mudando meu DAo para:

public Profissao carrega(Long id){

String hql = from Profissao p where p.codigoCBO = :id;

Query query = session.createQuery(hql).setParameter(id,id);

return (Profissao) query.uniqueResult();

}
ViniGodoy

Olá. Ao postar código, por favor, siga essas dicas:
http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

Lucas_Cavalcanti

rcabral: o session.load sempre retorna um proxy, daí se o objeto existir ele preenche os dados, senão ele dá uma exception. O session.get retorna null se o registro não existir.

R

Vlw novamente Lucas.
Um abraço.

Criado 19 de junho de 2011
Ultima resposta 20 de jun. de 2011
Respostas 4
Participantes 3