Duvida com JSF. listar descricao e gravar codigo

Estou querendo listar a descricao e na hora de gravar, gravar apenas o codigo… estou usando Hibernate e JSF…

meu cadastro esta assim.

                        
                        <td>Tipo Quarto:</td>
                        <td><h:selectOneMenu value="#{QuartoFace.selectedQuarto.codigo}">
                                <f:selectItems value="#{QuartoFace.tiposQuartoCadastrados}"/>
                            </h:selectOneMenu>
                        </td>

e o bean assim

 //     listar os TiposQuarto para dentro do cadastro de quartos
     public List<SelectItem> getTiposQuartoCadastrados(){
         List<SelectItem> toReturn = new LinkedList<SelectItem>();
         for (TiposQuarto tiposquarto : tiposquartoDAO.getTiposQuarto()){
         toReturn.add(new SelectItem(tiposquarto,tiposquarto.getDescricao()));
     }
         return toReturn;
    }

Espero que possam me ajudar isso parece tao simples mas estou me enrolando todo.
Desde de já agradeço.

Onde está o código que você está tentando obter o dado?

vc esta se referindo ao DAO?

eu tenho meu bean e faço um linkedlist dentro para depois no meu cadastro ele ser exibido em combo… ele lista certinho so que nao envia para o bd pois o bd esta esperndo so o codigo…

o dao esta assim

public class QuartoDAO extends GenericDAO{
    private static final long serialVesionUID = 1L;

    public QuartoDAO(){
    }


    public int addQuarto(Quarto quart){
        salvarAlterarPojo(quart);
        return quart.getCodigo();
    }

    public void removerQuarto(Quarto quart){
        removerPojo(quart);
    }

    public void alterarQuarto(Quarto quart){
        salvarAlterarPojo(quart);
    }

    public Quarto getQuarto(int quartoCodigo){
        Quarto quart = getPojo(Quarto.class, quartoCodigo);
        return quart;
    }

    public List<Quarto> getQuartos(){
       return getPureList(Quarto.class, "from Quarto quart");
    }
}

e o bean completo assim

public class QuartoFace {
//********** listando dados do cliente************
    private List<Quarto> cachedQuartos = null;
    private QuartoDAO quartoDAO = new  QuartoDAO();
    private Quarto selectedQuarto = new Quarto();
    private SituacaoQuartoDAO situacaoquartoDAO = new  SituacaoQuartoDAO();
    private TiposQuartoDAO tiposquartoDAO = new  TiposQuartoDAO();


    /** Creates a new instance of QuartoFace */
    public QuartoFace() {
    }

    public List<Quarto> getCachedQuartos() {
        if (cachedQuartos == null){
            cachedQuartos = quartoDAO.getQuartos();
        }
        return cachedQuartos;
    }

     //     listar as SituacaoQuarto para dentro do cadastro de quartos
     public List<SelectItem> getSituacaoQuartosCadastrados(){
         List<SelectItem> toReturn = new LinkedList<SelectItem>();
         for (SituacaoQuarto situacaoquarto : situacaoquartoDAO.getSituacaoQuartos()){
         toReturn.add(new SelectItem(situacaoquarto,situacaoquarto.getDescricao()));
     }
         return toReturn;
    }

      //     listar os TiposQuarto para dentro do cadastro de quartos
     public List<SelectItem> getTiposQuartoCadastrados(){
         List<SelectItem> toReturn = new LinkedList<SelectItem>();
         for (TiposQuarto tiposquarto : tiposquartoDAO.getTiposQuarto()){
         toReturn.add(new SelectItem(tiposquarto,tiposquarto.getDescricao()));
     }
         return toReturn;
    }

//********** Adicionar quartos ***************

    public String addQuarto(){
        selectedQuarto = new Quarto();
        return "irParaAddNovoQuarto";
    }

    public String removerQuarto(){
        quartoDAO.removerQuarto(selectedQuarto);
        cachedQuartos = null;
        return "irParaListaQuartos";
    }

    public Quarto getSelectedQuarto(){
        return selectedQuarto;
    }

    public String terminaAddQuarto(){
        quartoDAO.addQuarto(selectedQuarto);
        cachedQuartos = null;
        return "irParaListaQuartos";
    }

    public QuartoDAO getQuartoDAO() {
        return quartoDAO;
    }

    public void setQuartoDAO(QuartoDAO quartoDAO) {
        this.quartoDAO = quartoDAO;
    }


    public void setSelectedQuarto(Quarto selectedQuarto) {
        this.selectedQuarto = selectedQuarto;
    }
}

desde ja agradeço pois estou precisando muito dessa ajuda…

Você precisa de um converter no selectOneMenu.
Faça um Converter para o seu TipoQuarto e declare-o no faces-config.xml.

public class TipoQuartoConverter implements javax.faces.convert.Converter{
	public Object getAsObject(FacesContext context, UIComponent component, String value) {
		//...
	}
	public String getAsString(FacesContext context, UIComponent component, Object object) {
		//...
	}
}
                        <td>Tipo Quarto:</td>
                        <td><h:selectOneMenu value="#{QuartoFace.selectedQuarto.codigo}">
                                <f:converter converterId="TipoQuarto"/>
                                <f:selectItems value="#{QuartoFace.tiposQuartoCadastrados}"/>
                            </h:selectOneMenu>
                        </td>

Considere que você nomeou o conversor de TipoQuarto…