Problema com selectOneMenu

Bom dia pessoal !
estou começando dom JSF e hibernate e gostria de uma ajuda…

é o seguinte tenho 2 classes Categoria e Produto

e uso o selectOneMenu para poder selecionar um item Categoria.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.prime.com.tr/ui">

<h:head>
	<link rel="stylesheet" type="text/css" href="estilos.css" />
</h:head>

<h:body>
	<h:form>
		<p:panel id="panel1" header="Cadastro Categoria">

			<h:panelGrid columns="2">
				<h:outputLabel for="Nome" value="Nome:" />
				<p:inputText id="nome" value="#{categoriaBean.novaCategoria.nome}"
					label="Nome" />

				<p:commandButton value="Cadastrar"
					actionListener="#{categoriaBean.cadastra}" />
			</h:panelGrid>
		</p:panel>
	</h:form>

	<h:form>
		<p:panel id="panel1" header="Cadastro Produto">

			<h:panelGrid columns="2">
				<h:outputLabel for="Nome" value="Nome: *" />
				<p:inputText id="nome" value="#{produtoBean.novoProduto.nome}" label="Nome" />

				<h:outputText value="Telefone" />
				<p:selectOneMenu value="#{produtoBean.novoProduto.categoria}" effect="fade">
					<f:selectItem itemLabel="Selecione" itemValue="" />
					<f:selectItems value="#{categoriaBean.cateorias}" var="c" 
					   itemLabel="#{c.nome}" itemValue="#{c.codigo}" />
				</p:selectOneMenu>


				<p:commandButton value="Cadastrar"
					actionListener="#{produtoBean.cadastra}" />
			</h:panelGrid>
		</p:panel>
	</h:form>
</h:body>

</html>

Más quando vou cadastrar o produto com uma categoria selecionada ele da o erro que não pode converter :
Caused by: javax.el.ELException: /index.xhtml @35,81 value="#{produtoBean.novoProduto.categoria}": Cannot convert 4 of type class java.lang.String to class modelo.Categoria at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:139).

Quando uso as 2 classes sem o relacionamento funciona normalmente.

BEANS

CategoriaBean

package bean;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import modelo.Categoria;


public class CategoriaBean {
	Categoria novaCategoria = new Categoria();

	private List<Categoria> cateorias;
	private Categoria CategoriaSelecionada;

	public void cadastra() {
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("Loja");
		EntityManager manager = factory.createEntityManager();
		manager.persist(novaCategoria);
		manager.getTransaction().begin();
		manager.getTransaction().commit();
		factory.close();
}

	public List<Categoria> consulta() {
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("Loja");
		EntityManager manager = factory.createEntityManager();
		javax.persistence.Query query = manager.createQuery("SELECT e FROM Categoria e");
		return query.getResultList();
	}

	public Categoria getNovaCategoria() {
		return novaCategoria;
	}

	public void setNovaCategoria(Categoria novaCategoria) {
		this.novaCategoria = novaCategoria;
	}

	public List<Categoria> getCateorias() {
		if(cateorias == null){
			cateorias=consulta();
		}
		return cateorias;
	}

	public void setCateorias(List<Categoria> cateorias) {
		this.cateorias = cateorias;
	}

	public Categoria getCategoriaSelecionada() {
		return CategoriaSelecionada;
	}

	public void setCategoriaSelecionada(Categoria categoriaSelecionada) {
		CategoriaSelecionada = categoriaSelecionada;
	}

}

ProdutoBean

package bean;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import modelo.Produto;



public class ProdutoBean {
	Produto novoProduto = new Produto();

	private List<Produto> produtos;
	private Produto ProdutoSelecionado;

	public void cadastra() {
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("Loja");
		EntityManager manager = factory.createEntityManager();
		manager.persist(novoProduto);
		manager.getTransaction().begin();
		manager.getTransaction().commit();
		factory.close();
		System.out.println("Cadastrado com sucesso!!!");
		
	}

	public List<Produto> consulta() {
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("Loja");
		EntityManager manager = factory.createEntityManager();
		javax.persistence.Query query = manager.createQuery("SELECT e FROM Produto e");
		return query.getResultList();
	}

	public Produto getNovoProduto() {
		return novoProduto;
	}

	public void setNovoProduto(Produto novoProduto) {
		this.novoProduto = novoProduto;
	}

	public List<Produto> getProdutos() {
		if(produtos==null){
			produtos=consulta();
		}
		return produtos;
	}

	public void setProdutos(List<Produto> produtos) {
		this.produtos = produtos;
	}

	public Produto getProdutoSelecionado() {
		return ProdutoSelecionado;
	}

	public void setProdutoSelecionado(Produto produtoSelecionado) {
		ProdutoSelecionado = produtoSelecionado;
	}


}

Obrigado!!!

#{categoriaBean.cateorias} precisa ser um List… e deve apontar para #{produtoBean.novoProduto.categoria".id"}.
Acho q é isso…

ou um Map

public Map<String, String> alimentaComboBox() { List<String> grupos = loginService.getAniversario; Map<String, String> map = new HashMap<String, String>(); for (String element : grupos) { map.put(element, element); } return map; }

esse Map é só adicionar na no Bean CategoriaBean ?

sim e apontar no xhtml