Popular selectOneMenu e Hibernate

3 respostas
J

Preciso popular um combo. Peguei um exemplo aqui no grupo:
Código:

public class Typeinheritances { 

private String description; 

private Map typeinheritancesMap = new HashMap(); 

public String getDescription() { 
return description; 
} 

public void setDescription(String description) { 
this.description = description; 
} 

public Map getDescriptionMap() { 
typeinheritancesMap.put("RJ", "RJ"); 
typeinheritancesMap.put("AC", "AC"); 
typeinheritancesMap.put("AL", "AL"); 
return typeinheritancesMap; 
}

Preenchendo na mão assim, normal, só que preciso que os valores da combo sejam o resultado de uma query. Tenho a lista abaixo:

Código:
public List getTypeInheritances() { 
       try{ 
          HibernateUtil.beginTransaction(); 
          Session session = HibernateUtil.currentSession(); 
          org.hibernate.Query query = session.createQuery( 
          "select object(o) from Typeinheritance as o"); 
          List list= query.list(); 
          HibernateUtil.commitTransaction(); 
          HibernateUtil.closeSession(); 
          return list; 
          
       }catch(Exception e1){ 
              addMessage("Erro em listar typeinheritances!"); 
              return null; 
            }    
   }

Código:
e a minha jsp:

<h:selectOneMenu id="typeinheritance_list" 
                         value="#{InheritanceFacade.description_ti}"> 
                <f:selectItems value="#{Typeinheritances.descriptionMap}" /> 
            </h:selectOneMenu>

Se eu chamar diretamente a lista: ="#{TypeinheritanceFacade.Typeinheritances}" , tenho erro de cast. Podes me ajudar a resolver isso, mas se possivel com alguns detalhes, sou iniciante em java!!

3 Respostas

henrique_ganso

iae cara, esse topico é antigo, você conseguiu resolver esse problema se sim, pode me ajudar …

Valeu, javafigueiredoPJ

tmvolpato

que problema você esta tendo

passa ai

henrique_ganso

Bom, estou usando Hibernate e JSF no projeto, estou fazendo assim

Pagina XHTML

<h:selectOneMenu value="#{estadoBean.idPaisSelecionado}">
                    <f:selectItems value="#{estadoBean.selectItemsPais}" />
                </h:selectOneMenu>

EstadoBean

package br.com.webgi.bean;

import br.com.webgi.DAOGenerico.DAOGenerico;
import br.com.webgi.mapeamento.Estado;
import java.util.List;
import javax.faces.model.SelectItem;

public class estadoBean 
{ 
    Estado estado = new Estado();
    private List< SelectItem > selectItemsPais;
    private int idPaisSelecionado;
    
    public void setSelectItemsPais(List< SelectItem> selectItemsPais)
    {
        this.selectItemsPais = selectItemsPais;
    }
    
    public int getIdPaisSelecionado() 
    {
        return idPaisSelecionado;
    }
    
    public void setIdPaisSelecionado (int idPaisSelecionado)
    {
        this.idPaisSelecionado = idPaisSelecionado;
    }
 
    public String insere()
       {
                   
             DAOGenerico obj_estadoDAO = new DAOGenerico(estado);
             obj_estadoDAO.insere();
                    
             return "cadastrado";
       }
       
    public Estado getEstado() {
        return estado;
    }

    public void setEstado(Estado estado) {
        this.estado = estado;
    }

 }

DAOGenerico

public List combobox() 
    {
       try
           {
                transacao = sessao.beginTransaction();
                List lista = (List) sessao.createSQLQuery("");
                
                transacao.commit();
                
           }
            catch(HibernateException erro)
                 {
                     JOptionPane.showMessageDialog(null, "Erro na combobox DAOGenerico :"+erro);
                     transacao.rollback();
                 }
       return lista;
    }

Acredito que seja algo simples, mais não estou conseguindo, o combobox fica em branco, sou iniciante se voce puder me ajudar com um passo a passo
desde ja Obrigadoo …

Criado 22 de janeiro de 2007
Ultima resposta 26 de fev. de 2012
Respostas 3
Participantes 3