Rich:ComboBox + item Selecionado - Preciso de ajuda urgente!

Ola pessoal, boa tarde.
Estou com o seguinte problema ao utilizar o componente Rich:ComboBox.
Este componente deve ser utilizado da seguinte forma para não aparecero ID, e sim aparecer a descrição, no meu caso nome do professor, conforme abaixo:

 <rich:comboBox id="cmbProfessor"
     value="#{manterCursosForm.professorSelecionado}"
     defaultLabel="#{msg['opcao.selecione']}" enableManualInput="false">
     <f:selectItems id="sisProfessores" value="#{manterCursosForm.listaProfessores}"  />
</rich:comboBox>

A lista de professores é um array de selectItem:


controllerProfessor.carregarListaProfessores();
     for (Professor profs : controllerProfessor.getListaProfessores())
     getListaProfessores().add(new SelectItem(profs.getNome(),profs.getId().toString()));

A ordem dos campos ao ser adicionado no SelectItem é essa acima, caso seja invertido, o que será mostrado na combo será o id.
Porém ao selecionar o professor nesse caso, para que funcione, o professorSelecionado deverá ser do tipo String, e com isso, eu não consego pegar o id para inserir na base ou buscar se já existe.

Existe alguma maneira de recuperá-lo?

Outra questão é a seguinte. Estou utilizando o rich:comboBox por causa da propriedade defaultLabel, pois no caso de de chamar uma alteração de professor o defaultLabel recebe o professorSelecionado, ou seja, o que está vindo da base será o primeiro da lista. Existe alguma forma de contornar essa situação, e utilizando o h:SelectOneMenu eu consiga fazer com que o primeiro da lista seja esse item vindo da base? Tipo pelo index ou coisa parecida?
Só estou utilizando o rich:comboBox por causa dessa situação, pq o h:selectOneMenu funciona comigo, porém nao consigo setar na combo o primeiro professor o que está vindo da base.

Alguem tem alguma solução para essa questão?
Agradeço desde já pela atenção,
Att,
Lessandro