ola pessoal boa noite to com uma duvida aqui que nao consigo resolver, e o seguinte
preciso que na hora de salvar um usuario ele salve o perfil do usuario que e um outro objetoque e carregado para um selectOneMenu desta forma:
public List<SelectItem> getLista() throws Exception {
List<SelectItem> lista = new LinkedList<SelectItem>();
PerfilUsuario perfil = new PerfilUsuario();
IDaoPerfilUsuario idao = new DaoPerfilUsuario();
List<PerfilUsuario> resultado = (List<PerfilUsuario>) idao.ListarTudo();
for(PerfilUsuario teste : resultado){
SelectItem item = new SelectItem(teste.getCodigoperfil(), teste.getDescricao());
lista.add(item);
}
return lista;
}
Object value = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id");
porque vc não está passando o id do objeto por parametro.
supondo que o método que vc passou pertence a classe Usuario (nome do managed bean q vc está usando) faça desta forma:
(Edit Encontrei outro erro): Vc está fazendo o Cast de uma lista para um objeto PerfilUsuario, vc deve pegar o primeiro resultado, segue o codigo corrigido
public PerfilUsuario loadPerfil() {
// TODO Auto-generated method stub
session = HibernateUtil.getInstance();
Query query = session.createQuery(
"from PerfilUsuario p where p.codigoperfil= :codigo" );
Object value =
PerfilUsuario perfil = (PerfilUsuario) query.setInteger("codigo", changeValue).uniqueResult();
return perfil;
}
porque o valor do changeValue é o codigo do selectItem.
11:52:42,750 INFO [STDOUT] Hibernate: select perfilusua0_.codigoperfil as codigope1_15_, perfilusua0_.descricao as descricao15_ from perfilUsuario perfilusua0_
11:52:42,750 INFO [STDOUT] Hibernate: select perfilusua0_.codigoperfil as codigope1_15_, perfilusua0_.descricao as descricao15_ from perfilUsuario perfilusua0_
11:52:42,781 INFO [lifecycle] WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=j_id_jsp_994863871_1:j_id_jsp_994863871_23[severity=(ERROR 2), summary=(Conversion Error setting value '1' for 'null Converter'. ), detail=(Conversion Error setting value '1' for 'null Converter'. )]
sourceId=j_id_jsp_994863871_1:j_id_jsp_994863871_27[severity=(ERROR 2), summary=(j_id_jsp_994863871_1:j_id_jsp_994863871_27: '3333333333' must be a number consisting of one or more digits.), detail=(j_id_jsp_994863871_1:j_id_jsp_994863871_27: '3333333333' must be a number between -2147483648 and 2147483647 Example: 9346)]
o que eu quero e que qdo eu for salvar um usuario ele carregue o perfil do usuario de acordo com o valor setado no SelectOne, mas como as outras formas que ja tentei acima nao deram certo,alguem pode ajudar?