Pessoal.
Proceguindo em meu aprendizado, estou tentando fazer combos aninhados (Estado/Cidade), contudo ao executar o metodo de buscar as cidades tenho problemas de cast com o enum na execucao da criteria no hibernate.
Este é o erro.
Hibernate:
/* criteria query */ select
this_.idcidade as idcidade1_0_,
this_.codestado as codestado1_0_,
this_.txcidade as txcidade1_0_
from
cidade this_
where
this_.codestado=?
11/10/2010 16:36:28 com.sun.faces.application.ActionListenerImpl processAction
GRAVE: /usuario.xhtml @36,124 action="#{usuarioAction.PreencherCidade}": java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Enum
Este e a bean
@Id
@GeneratedValue
@Column(name="idcidade")
private Integer sequencialCidade;
@Column(name="txcidade")
private String nomeCidade;
@Enumerated(EnumType.ORDINAL) //Já Tentei .STRING e o erro e o mesmo
@Column(name="codestado")
Este é o enum
public enum Estado {
SP,RJ,PR,DF,ES,MG,SC,MT;
}
Este é a criteria
Criteria cid = teste.createCriteria(Cidade.class);
if(cidade.getNomeCidade() != null)
cid.add(Restrictions.eq("nomeCidade",cidade.getNomeCidade()));
if(cidade.getEstado().toString() != null)
cid.add(Restrictions.eq("estado",cidade.getEstado().toString()));
//Executando HQL
List<Cidade> resultado = cid.list();
//Pegando Resultado
if (resultado != null) {
return resultado;
} else {
return null;
}
Agradeço muito qualquer dica, pois já vi varios exemplos e tentei muitas alternativas mas não tive sucesso.