Preenchimento de itens na venda

Ola pessoal.

Estou com uma dificuldade em inserir itens na venda. Estou usando hibernate + jpa + jsf + primefaces + postgres. Eu não sei o motivo de não estar conseguindo preencher as colunas da tabela ItemVendaRapida. Abaixo está a classe controller ItemVendaRapida:

@ManagedBean
@SessionScoped
public class ItemVendaRapidaBean implements Serializable{
    
    private ItemVendaRapida itemvenda = new ItemVendaRapida();
    private List itemvendas = new ArrayList<ItemVendaRapida>();
    private VendaRapida venda = new VendaRapida();
    private List vendas = new ArrayList();
    
    public ItemVendaRapidaBean(){
        itemvendas = new ItemVendaRapidaDao().listar();
        itemvenda = new ItemVendaRapida();
    }
    
    public void salvar(ActionEvent event) {
        //recuperarVenda();
        atualizarQuantidade(itemvenda.getProduto().getId(), itemvenda.getQuantidade());
        itemvenda.setVenda(venda);
        new ItemVendaRapidaDao().inserir(itemvenda);
        itemvendas = new ItemVendaRapidaDao().listar();
        itemvenda = new ItemVendaRapida();
    }
    
    public void excluir() {
        new VendaRapidaBean().atualizarPrecoVenda("decrementar", itemvenda.getProduto().getPrecovenda(), itemvenda.getQuantidade());
        reporQuantidade(itemvenda.getProduto().getId(), itemvenda.getQuantidade());
        new ItemVendaRapidaDao().delete(itemvenda);
        itemvendas = new ItemVendaRapidaDao().listar();
        itemvenda = new ItemVendaRapida();
    }
 
    public ItemVendaRapida getItemVenda() {
        return itemvenda;
    }
 
    public void setItemVenda(ItemVendaRapida itemvenda) {
        this.itemvenda = itemvenda;
    }
 
    public List getItemVendas() {
        return itemvendas;
    }
 
    public void setItemVendas(List itemvendas) {
        this.itemvendas = itemvendas;
    }

    public VendaRapida getVenda() {
        return venda;
    }

    public void setVenda(VendaRapida venda) {
        this.venda = venda;
    }

    public List getVendas() {
        return vendas;
    }

    public void setVendas(List vendas) {
        this.vendas = vendas;
    }
    
    public void atualizarQuantidade(Integer id, Integer quantidade){
        Session session = HibernateUtil.session.openSession();  
        Transaction tx = session.beginTransaction();  
        String sql = "update Produto p set p.quantidade = p.quantidade - :novaQuantidade where id =:codigo";
        session.createQuery(sql).setInteger("novaQuantidade", quantidade).setInteger("codigo", id).executeUpdate();
        tx.commit();
        session.close();
    }
    
    public void recuperarVenda(){
        Session session = HibernateUtil.session.openSession();  
        Transaction tx = session.beginTransaction();
        venda = (VendaRapida) session.createCriteria(VendaRapida.class,"select MAX(id) from VendaRapida").uniqueResult();
        tx.commit();
        session.close();
    }
    
    public void reporQuantidade(Integer id, Integer quantidade){
        Session session = HibernateUtil.session.openSession();  
        Transaction tx = session.beginTransaction();  
        String sql = "update Produto p set p.quantidade = p.quantidade + :novaQuantidade where id =:codigo";
        session.createQuery(sql).setInteger("novaQuantidade", quantidade).setInteger("codigo", id).executeUpdate();
        tx.commit();
        session.close();
    }
}

Abaixo está o dialog que preencho as informações necessária no item da venda.

<p:dialog id="adicionarItem" width="500" resizable="no" widgetVar="adicionarItemVenda" header="ADICIONAR ITEM À VENDA RÁPIDA" modal="true" height="600">
                <h:form id="formAdicionarItemVenda">
                    <p:messages id="msgs" autoUpdate="true"/>
                    <h:panelGrid columns="2" cellpadding="4">
                        <h:outputLabel value="Produto:" for="produto"/>
                        <p:selectOneMenu value="#{itemVendaRapidaBean.itemVenda.produto}" converter="bancoConverter" panelStyle="width:150px"  
                         effect="fade" var="p" style="width:160px" filter="true" filterMatchMode="startsWith">  
                            <f:selectItem itemLabel="Selecione" itemValue=""/>
                            <f:selectItems value="#{produtoBean.produtos}" var="itens" itemValue="#{itens}" itemLabel="#{itens.nome}"/>
                            <p:column>
                                #{p.nome}
                            </p:column>
                            <p:column>
                                #{p.precovenda}
                            </p:column>
                            <p:column>
                                #{p.quantidade}
                            </p:column>
                        </p:selectOneMenu>
                        <h:outputLabel value="Quantidade:" for="quantidade"></h:outputLabel>
                        <h:inputText id="quantidade" value="#{itemVendaRapidaBean.itemVenda.quantidade}"/>
                        <h:outputLabel value="Itens da venda:" for="itens"></h:outputLabel>
                        <p:dataTable id="itemvenda" value="#{itemVendaRapidaBean.itemVendas}" selectionMode="single" rowKey="#{item.id}" var="item" emptyMessage="Nenhum registro incluido." paginator="true" rows="10">
                            <f:facet name="header">
                                LISTA DE ITEM DE VENDAS RÁPIDAS
                            </f:facet>
                            <p:column headerText="NOME" style="text-align: center">
                                <h:outputText value="#{item.produto.nome}" />
                            </p:column>
                            <p:column headerText="QUANTIDADE" style="text-align: center">
                                <h:outputText value="#{item.quantidade}" />
                            </p:column>
                            <p:column headerText="EXCLUIR" style="text-align: center">
                                <p:commandButton value="EXCLUIR" title="Excluir" onclick="confirmationItem.show()" ajax="true" style="margin-left: 5px"/>
                            </p:column>
                        </p:dataTable>
                    </h:panelGrid>
                    <p:commandButton id="btnAdicionar" value="ADICIONAR" actionListener="#{itemVendaRapidaBean.salvar}" process="@this" update="formAdicionarItemVenda"/>
                    <p:commandButton id="btnCancelar" value="FECHAR" oncomplete="adicionarItemVenda.hide()" process="@all" update=":formCadastroVenda"/>
                </h:form>
            </p:dialog>

Esse problema está duro de corrigir. Alguma sugestão?