Data table com cellEditor e p:selectOneMenu [Resolvido]

clico no pincel…altero o objeto da lista no datatable…porem o objeto nas colunas que são com p:selectOneMenu não traz o valor alterado…segue o codigo

 dataTable

  <p:dataTable id="tableProdutos" value="#{pnMB.listaProdutos}" var="q" emptyMessage="No Registry" 
                             paginator="true" rows="10" editable="true"
                             rowsPerPageTemplate="10,50,100,150"
                              paginatorTemplate= " {CurrentPageReport}  {FirstPageLink} {PreviousPageLink} 
                               {PageLinks} {NextPageLink} {LastPageLink} 
                               {RowsPerPageDropdown}" rowKey="#{q.idProduto}"
                               filteredValue="#{pnMB.listaProdutosFilter}"
                               selection="#{pnMB.produtosSelecionados}"
                               widgetVar="tbl"> 
                    
                      <p:ajax event="rowEdit"  
                              listener="#{pnMB.verificaLinhaEditada}" />
                    
                            <p:column>
                                <p:rowEditor />
                            </p:column>
                    
                    

                    <p:column id="SegmentColumn" headerText="SEGMENT" filterBy="#{q.descSegment}" 
                              filterMatchMode="startsWith"
                              filterStyle="width: 40px;">
                        <p:cellEditor>
                            <f:facet name="output">
                                <h:outputText value="#{q.descSegment}" />
                            </f:facet>

                            <f:facet name="input">
                                <p:selectOneMenu id="segment"  value="#{pnMB.segmentValue}" required="true" style="width:100px">  
                                    <f:selectItem itemLabel="#{q.descSegment}"  />  
                                    <f:selectItems value="#{pnMB.segments}"/>  
                                </p:selectOneMenu> 
                            </f:facet>
                        </p:cellEditor>
                    </p:column>  
bean

  public void verificaLinhaEditada(RowEditEvent event) {
        Products prod = new Products();
        ProdutoDao pDao = new ProdutoDao();

        prod = (Products) event.getObject();

        pDao.updateProduto(prod);

    }

 private TreeMap<String, String> segments = new TreeMap<String, String>();

//gets sets

public void populaComboSegment() {
        List<Segment> l = pDao.recuperarSegment();
        
        for (Segment s : l) {
            getSegments().put(s.getDescSegmento(), String.valueOf(s.getIdSegmento()));
        }
    }


Acredito que o atributo value do p:selectOneMenu deveria apontar para um valor dinâmico de um registro da sua tabela, ou seja, um atributo de q, que representa cada registro da tabela.

achei o erro…estava pegando o texto…corrigi o xhtml para pegar o id

  <p:column id="familyColumn" headerText="FAMILY" filterBy="#{q.descFamily}" filterMatchMode="startsWith" 
                              filterStyle="width: 60px;">
                        <p:cellEditor>
                            <f:facet name="output">
                                  <h:outputText value="#{q.descFamily}"  />
                            </f:facet>
                            <f:facet name="input">
                                <p:selectOneMenu id="family"  value="#{q.idFamilia}" (AQUI)   required="true" style="width:150px">   
                                    <f:selectItems value="#{pnMB.families}" var="itens"
                                                   itemValue="#{itens}"
                                                   itemLabel="#{itens}"/>    
                                </p:selectOneMenu> 
                            </f:facet>
                        </p:cellEditor>
                    </p:column>