Colletor não adiciona na lista, substitui o elemento

Olá amigos, já fiz de tudo mas na hora do coletor add na lista ele simplesmente troca o elemento que já esta, ou seja sempre fica 1 elemento na lista. se puderem me ajudar agradecço. Em anexo esta os fontes

Bean

package com.systempro.sapiweb.ui.beans;

import com.systempro.sapiweb.dominio.*;
import com.systempro.sapiweb.service.*;
import java.util.*;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@ManagedBean
@SessionScoped
public class AcervoJsfBean extends BaseCRUDJSFBean<Acervo> {

    public static final String RELATORIO_ACERVO = "acervo";
    private static Logger log = LoggerFactory.getLogger(AcervoJsfBean.class);
    private AcervoxAutores acervoxautores = new AcervoxAutores();
    private Exemplar exemplar = new Exemplar();
    @EJB
    private AcervoService a;
    @EJB
    private TipoMaterialService m;
    @EJB
    private IdiomaService i;
    @EJB
    private EditorasService e;
    @EJB
    private AutoresService y;
    @EJB
    private ClassificacaoService c;
    @EJB
    private AcervoxAutoresService aa;
    private List<Acervo> acervoList = new ArrayList<Acervo>();
    private List<Exemplar> exemplarList = new ArrayList<Exemplar>();
    private List<TipoMaterial> TipoMaterialList = new ArrayList<TipoMaterial>();
    private List<Idioma> idiomaList = new ArrayList<Idioma>();
    private List<Editoras> editorasList = new ArrayList<Editoras>();
    private List<Classificacao> classificacaoList = new ArrayList<Classificacao>();
    private List<Autores> autoresList = new ArrayList<Autores>();
    private List<AcervoxAutores> autoresL = new ArrayList<AcervoxAutores>();
    private AutoresJsfBean autoresJsfBean = new AutoresJsfBean();
    private AcervoxAutores acervoxAutores = new AcervoxAutores();
    private Acervo acervo = new Acervo();
    private Autores autores = new Autores();
    private String aceTitulo;
    private String aceSubtitulo;
    private String aceIsbn;
    private String aceLocalizacao;
    private String aceeditora;
    private String aceidioma;
    private String aceclass;
    private String acetipomate = "";
    private Classificacao aceClasFiltro;

    @Override
    protected void setup() {
        super.setup();
        this.TipoMaterialList = getCrudService().findAll(TipoMaterial.class, "tipoDescricao");
        this.idiomaList = getCrudService().findAll(Idioma.class, "idiDescricao");
        this.editorasList = getCrudService().findAll(Editoras.class, "ediDescricao");
        this.classificacaoList = getCrudService().findAll(Classificacao.class, "clasDescricao");
        this.autoresList = getCrudService().findAll(Autores.class, "autDescricao");
        this.acervoList = getCrudService().findAll(Acervo.class, "aceCodigo");
    }

    @Override
    public void criaObjeto() {
        super.criaObjeto();
        Date data = new Date();
        crudObj.setAceDatacad(data);
    }

    public String reinit() {
        acervoxautores = new AcervoxAutores();
        return null;
    }

    @Override
    public void salva() {
        crudObj.setBibAcervoxAutoresCollection(autoresL);
        super.salva();
    }

    @Override
    public void editaObj(Acervo obj) {
        if (obj.getBibAcervoxAutoresCollection() != null) {
            autoresL = (List<AcervoxAutores>) obj.getBibAcervoxAutoresCollection();
        }
        super.editaObj(obj);
    }


    @Override
    public void atualizar() {
        renovarTabela();
        ativaAbaListagem();
    }

    public void geraRelatorioAcervoPDF() {
        geraRelatorioAcervo(true);
    }

    public void geraRelatorioAcervo(boolean isPDF) {
        List<Acervo> listaRelatorio = a.listaAcervoRelatorio(montaParametros());
        if (isPDF) {
            // Relatorio em PDF com folha de rosto padrao
            geraRelatorioPDF(listaRelatorio, RELATORIO_ACERVO);
        }
    }

    public AcervoJsfBean() {
        autoresJsfBean = new AutoresJsfBean();
        autoresL = new ArrayList<AcervoxAutores>();
        acervoxAutores = new AcervoxAutores();
    }

    @Override
    public void renovarTabela() {
        filtraAcervo();
    }

    public void filtraAcervo() {
        acervoList = a.listaAcervoRelatorio(montaParametros());
    }

    private Map<String, Object> montaParametros() {
        Map<String, Object> p = new HashMap<String, Object>();

        p.put("aceTitulo", aceTitulo);
        p.put("aceSubtitulo", aceSubtitulo);
        p.put("aceIsbn", aceIsbn);
        p.put("aceLocalizacao", aceLocalizacao);
        p.put("aceeditora", aceeditora);
        p.put("aceidioma", aceidioma);
        p.put("aceclass", aceclass);
        p.put("acetipomate", acetipomate);

        return p;
    }

    public List<Classificacao> completaClassificacao(String query) {
        this.classificacaoList = c.findClassificacaoByNome(query);
        return c.findClassificacaoByNome(query);
    }

    public List<Autores> completaAutores(String query) {
        this.autoresList = y.findAutoresByNome(query);
        return y.findAutoresByNome(query);
    }

    public List<Acervo> completaAcervo(String query) {
        this.acervoList = a.findAcervoByNome(query);
        return a.findAcervoByNome(query);
    }

    public List<TipoMaterial> getTipoMaterialList() {
        return TipoMaterialList;
    }

    public void setTipoMaterialList(List<TipoMaterial> TipoMaterialList) {
        this.TipoMaterialList = TipoMaterialList;
    }

    public Classificacao getAceClasFiltro() {
        return aceClasFiltro;
    }

    public void setAceClasFiltro(Classificacao aceClasFiltro) {
        this.aceClasFiltro = aceClasFiltro;
    }

    public String getAceIsbn() {
        return aceIsbn;
    }

    public void setAceIsbn(String aceIsbn) {
        this.aceIsbn = aceIsbn;
    }

    public String getAceLocalizacao() {
        return aceLocalizacao;
    }

    public void setAceLocalizacao(String aceLocalizacao) {
        this.aceLocalizacao = aceLocalizacao;
    }

    public String getAceSubtitulo() {
        return aceSubtitulo;
    }

    public void setAceSubtitulo(String aceSubtitulo) {
        this.aceSubtitulo = aceSubtitulo;
    }

    public String getAceTitulo() {
        return aceTitulo;
    }

    public void setAceTitulo(String aceTitulo) {
        this.aceTitulo = aceTitulo;
    }

    public String getAceclass() {
        return aceclass;
    }

    public void setAceclass(String aceclass) {
        this.aceclass = aceclass;
    }

    public String getAceeditora() {
        return aceeditora;
    }

    public void setAceeditora(String aceeditora) {
        this.aceeditora = aceeditora;
    }

    public String getAceidioma() {
        return aceidioma;
    }

    public void setAceidioma(String aceidioma) {
        this.aceidioma = aceidioma;
    }

    public Acervo getAcervo() {
        return acervo;
    }

    public void setAcervo(Acervo acervo) {
        this.acervo = acervo;
    }

    public List<Acervo> getAcervoList() {
        return acervoList;
    }

    public void setAcervoList(List<Acervo> acervoList) {
        this.acervoList = acervoList;
    }

    public AcervoxAutores getAcervoxAutores() {
        return acervoxAutores;
    }

    public void setAcervoxAutores(AcervoxAutores acervoxAutores) {
        this.acervoxAutores = acervoxAutores;
    }

    public AcervoxAutores getAcervoxautores() {
        return acervoxautores;
    }

    public void setAcervoxautores(AcervoxAutores acervoxautores) {
        this.acervoxautores = acervoxautores;
    }

    public String getAcetipomate() {
        return acetipomate;
    }

    public void setAcetipomate(String acetipomate) {
        this.acetipomate = acetipomate;
    }

    public Autores getAutores() {
        return autores;
    }

    public void setAutores(Autores autores) {
        this.autores = autores;
    }

    public AutoresJsfBean getAutoresJsfBean() {
        return autoresJsfBean;
    }

    public void setAutoresJsfBean(AutoresJsfBean autoresJsfBean) {
        this.autoresJsfBean = autoresJsfBean;
    }

    public List<AcervoxAutores> getAutoresL() {
        return autoresL;
    }

    public void setAutoresL(List<AcervoxAutores> autoresL) {
        this.autoresL = autoresL;
    }

    public List<Autores> getAutoresList() {
        return autoresList;
    }

    public void setAutoresList(List<Autores> autoresList) {
        this.autoresList = autoresList;
    }

    public List<Classificacao> getClassificacaoList() {
        return classificacaoList;
    }

    public void setClassificacaoList(List<Classificacao> classificacaoList) {
        this.classificacaoList = classificacaoList;
    }

    public List<Editoras> getEditorasList() {
        return editorasList;
    }

    public void setEditorasList(List<Editoras> editorasList) {
        this.editorasList = editorasList;
    }

    public Exemplar getExemplar() {
        return exemplar;
    }

    public void setExemplar(Exemplar exemplar) {
        this.exemplar = exemplar;
    }

    public List<Exemplar> getExemplarList() {
        return exemplarList;
    }

    public void setExemplarList(List<Exemplar> exemplarList) {
        this.exemplarList = exemplarList;
    }

    public List<Idioma> getIdiomaList() {
        return idiomaList;
    }

    public void setIdiomaList(List<Idioma> idiomaList) {
        this.idiomaList = idiomaList;
    }    
}

XHTML

<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:treap="http://java.sun.com/jsf/composite/treap"
      xmlns:p="http://primefaces.org/ui" 
      xmlns:cc="http://java.sun.com/jsf/composite">
    <body>
        <ui:composition template="./default_layout_with_menu.xhtml">

            <ui:define name="titulo-pagina">
                Acervo
            </ui:define>

            <ui:define name="content">

                <treap:ajaxStatus/>
                <p:tabView id="tab" activeIndex="#{acervoJsfBean.indiceAbaSelecionada}" widgetVar="tab1">
                    <p:tab title="Listagem" id="tabList" >

                        <p:panel header="Filtros de Consulta" id="parametros" toggleable="true" collapsed="true">
                            <treap:msgdica msg="Informe um parâmetro para a consulta. Deixe os campos em branco para exibir todos os registros."/>


                            <p:growl id="growl" life="1000"/>
                            <table border="0" cellpadding="2" cellspacing="0" style="margin-right: 40px">
                                <h:panelGrid columns="2" width="100%">
                                    <h:panelGrid columns="2">
                                        <tr>
                                            <td align="right">Título da Obra:</td>
                                            <td>
                                                <p:inputText size="25" value="#{acervoJsfBean.aceTitulo}"/><br/>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td align="right">Subtítulo:</td>
                                            <td>
                                                <p:inputText size="10" value="#{acervoJsfBean.aceSubtitulo}"/><br/>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td align="right">ISBN:</td>
                                            <td>
                                                <p:inputText size="10" value="#{acervoJsfBean.aceIsbn}"/><br/>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td align="right">Localização:</td>
                                            <td>
                                                <p:inputText size="10" value="#{acervoJsfBean.aceLocalizacao}"/><br/>
                                            </td>
                                        </tr>
                                    </h:panelGrid>
                                    <h:panelGrid columns="2" style="height: 100%; border-top: 0">   
                                        <tr>
                                            <td align="right">Editora</td>
                                            <td>
                                                <p:selectOneMenu value="#{acervoJsfBean.aceeditora}">
                                                    <f:selectItem itemLabel="Todas as editoras" itemValue="#{null}"/>
                                                    <f:selectItems value="#{acervoJsfBean.editorasList}" var="e" itemLabel="#{e.ediDescricao}" itemValue="#{e.ediCodigo}"/>
                                                </p:selectOneMenu>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td align="right" >Idioma</td>
                                            <td>
                                                <p:selectOneMenu value="#{acervoJsfBean.aceidioma}"> 
                                                    <f:selectItem itemLabel="Todos os idiomas" itemValue="#{null}"/>
                                                    <f:selectItems value="#{acervoJsfBean.idiomaList}" var="i" itemLabel="#{i.idiDescricao}" itemValue="#{i.idiCodigo}"/>
                                                </p:selectOneMenu>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td align="right" >Classificação</td>
                                            <td>
                                                <p:selectOneMenu value="#{acervoJsfBean.aceclass}">
                                                    <f:selectItem itemLabel="Todas as classificações" itemValue="#{null}"/>
                                                    <f:selectItems value="#{acervoJsfBean.classificacaoList}" var="c" itemLabel="#{c.clasDescricao}" itemValue="#{c.clasCodigo}"/>
                                                </p:selectOneMenu>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td align="right" >Tipo do Material</td>
                                            <td>
                                                <p:selectOneMenu value="#{acervoJsfBean.acetipomate}">
                                                    <f:selectItem itemLabel="Todas os materiais" itemValue="#{null}"/>
                                                    <f:selectItems value="#{acervoJsfBean.tipoMaterialList}" var="m" itemLabel="#{m.tipoDescricao}" itemValue="#{m.tipoCodigo}"/>
                                                </p:selectOneMenu>
                                            </td>
                                        </tr>
                                    </h:panelGrid>
                                </h:panelGrid>

                                <tr>
                                    <td>
                                        <p:commandButton id="btnPesquisar" actionListener="#{acervoJsfBean.atualizar}" value="Consultar"
                                                         update="@form" process="parametros" image="search"/>
                                    </td>
                                </tr>
                            </table>

                            <p:ajaxStatus style="position: fixed; top: 40%; left: 35%; background-color: #ffffff">
                                <f:facet name="start">
                                    <h:graphicImage value="/resources/img/ajaxloadingbar.gif" /><br/>
                                    <p:spacer width="3"/> Processando...
                                </f:facet>
                                <f:facet name="complete">
                                    <h:outputText value="" />
                                </f:facet>
                            </p:ajaxStatus>
                        </p:panel>
                        <br/>

                        <treap:btnCrudNovo bean="#{acervoJsfBean}" visivel="#{sec:ifAnyGranted('ADM')}"/>
                        <treap:btnCrudAtualizar bean="#{acervoJsfBean}"/>
                        <treap:btnRelatorio metodo="#{acervoJsfBean.geraRelatorioAcervoPDF()}"/>

                        <p:dataTable id="tabela1" value="#{acervoJsfBean.acervoList}" var="item"
                                     emptyMessage="Nenhum registro encontrado."
                                     paginator="true" rows="25"  pageLinks="10"
                                     paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} Registros por página: {RowsPerPageDropdown}"
                                     rowsPerPageTemplate="15,25,35,50">
                            <p:column>
                                <p:rowToggler />
                            </p:column>
                            <p:column headerText="Código">
                                <h:outputText value="#{item.aceCodigo}" />
                            </p:column>

                            <p:column headerText="Título da Obra" sortBy="#{item.aceTitulo}">
                                <h:outputText value="#{item.aceTitulo}"/>
                            </p:column>

                            <p:column headerText="Subtítulo">
                                <h:outputText value="#{item.aceSubtitulo}"/>
                            </p:column>

                            <p:column headerText="Data Criação" sortBy="#{item.aceDatacad}">
                                <h:outputText value="#{item.aceDatacad}"/>
                            </p:column>

                            <p:column headerText="Localização">
                                <h:outputText value="#{item.aceLocalizacao}"/>
                            </p:column>

                            <p:column headerText="Exemplares">
                                <h:outputText value="#{item.totalExemplares}"/>
                            </p:column>

                            <p:column headerText="Disponíveis">
                                <h:outputText value="#{item.exemplaresDisponiveis}"/>
                            </p:column>

                            <p:column headerText="Emprestado">
                                <h:outputText value="#{item.exemplaresEmprestados}"/>
                            </p:column>

                            <p:column headerText="Ações" style="width:06%">
                                <treap:btnCrudEditar bean="#{acervoJsfBean}" visivel="#{sec:ifAnyGranted('ADM')}"/>
                                <treap:btnCrudExcluir bean="#{acervoJsfBean}" visivel="#{sec:ifAnyGranted('ADM')}"/>
                            </p:column>
                            <p:rowExpansion>
                                <p:dataTable id="exemplar_list" value="#{item.bibExemplarCollection}" var="exemplar"
                                             emptyMessage="Nenhum exemplar encontrado.">
                                    <p:column headerText="Código do Exemplar">
                                        <h:outputText value="#{exemplar.exeCodigo}"/>
                                    </p:column>
                                    <p:column headerText="Biblioteca">
                                        <h:outputText value="#{exemplar.exebiblio.bibNomecomp}"/>
                                    </p:column>
                                    <p:column headerText="Número">
                                        <h:outputText value="#{exemplar.exeExemplar}"/>
                                    </p:column>
                                    <p:column headerText="Situação">
                                        <h:outputText value="#{exemplar.exeSituacaoCompleta}"/>
                                    </p:column>         
                                </p:dataTable>
                            </p:rowExpansion>
                        </p:dataTable>
                    </p:tab>

                    <p:tab title="Cadastro/Alteração" id="tabForm" rendered="#{sec:ifNotGranted('USR')}">
                        <p:growl id="grow2" life="1000"/>

                        <p:fieldset legend="Dados Principais" toggleable="false" toggleSpeed="500">

                            <h:panelGrid columns="2" width="100%">
                                <h:panelGrid columns="2">

                                    <h:outputLabel id="aceCodigo_lbl" value="Código:" for="aceCodigo" />
                                    <h:outputText id="aceCodigo" value="#{acervoJsfBean.crudObj.aceCodigo}" />

                                    <h:outputLabel id="aceTitulo_lbl" value="Titulo da Obra:" for="aceTitulo" />
                                    <p:inputText id="aceTitulo" value="#{acervoJsfBean.crudObj.aceTitulo}" required="false" requiredMessage="O campo Titulo da Obra deve ser informado." style="width: 150%" maxlength="200"/>

                                    <h:outputLabel id="aceSubtitulo_lbl" value="Subtítulo:" for="aceSubtitulo" />
                                    <p:inputText id="aceSubtitulo" value="#{acervoJsfBean.crudObj.aceSubtitulo}" required="false" style="width: 150%" maxlength="100"/>

                                    <h:outputLabel id="aceeditora_lbl" value="Editora" for="aceeditora" />
                                    <p:selectOneMenu id="aceeditora" value="#{acervoJsfBean.crudObj.aceeditora}" converter="sec" required="false" requiredMessage="O campo editora deve ser selecionado">
                                        <f:selectItem itemLabel="Selecione" itemValue="#{null}"/>
                                        <f:selectItems value="#{acervoJsfBean.editorasList}" var="e" itemLabel="#{e.ediDescricao}" itemValue="#{e}"/>
                                    </p:selectOneMenu>

                                    <h:outputLabel id="aceIsbn_lbl" value="ISBN:" for="aceIsbn" />
                                    <p:inputText id="aceIsbn" value="#{acervoJsfBean.crudObj.aceIsbn}" style="width: 150%" maxlength="20"/>

                                    <h:outputLabel id="aceDatacad_lbl" value="Data:" for="aceDatacad" />
                                    <p:inputMask id="aceDatacad" mask="99/99/9999" value="#{acervoJsfBean.crudObj.aceDatacad}" style="width: 60%">
                                        <f:convertDateTime pattern="dd/MM/yyyy"/>
                                    </p:inputMask>

                                    <h:outputLabel id="acetipomate_lbl" value="Tipo do Material" for="acetipomate" />
                                    <p:selectOneMenu id="acetipomate" value="#{acervoJsfBean.crudObj.acetipomate}" converter="sec" required="false" requiredMessage="O campo tipo do material deve ser selecionado">
                                        <f:selectItem itemLabel="Selecione" itemValue="#{null}"/>
                                        <f:selectItems value="#{acervoJsfBean.tipoMaterialList}" var="m" itemLabel="#{m.tipoDescricao}" itemValue="#{m}"/>
                                    </p:selectOneMenu>

                                </h:panelGrid>
                                <h:panelGrid columns="2" style="height: 100%; border-top: 0">

                                    <h:outputLabel id="aceclass_lbl" value="Classificação" for="aceclass" />
                                    <p:selectOneMenu id="aceclass" value="#{acervoJsfBean.crudObj.aceclass}" converter="sec" required="false" requiredMessage="O campo classicacao deve ser selecionado">
                                        <f:selectItem itemLabel="Selecione" itemValue="#{null}"/>
                                        <f:selectItems value="#{acervoJsfBean.classificacaoList}" var="c" itemLabel="#{c.clasDescricao}" itemValue="#{c}"/>
                                    </p:selectOneMenu>

                                    <h:outputLabel id="aceidioma_lbl" value="Idioma" for="aceidioma" />
                                    <p:selectOneMenu id="aceidioma" value="#{acervoJsfBean.crudObj.aceidioma}" converter="sec"  required="false" requiredMessage="O campo classicacao deve ser selecionado">
                                        <f:selectItem itemLabel="Selecione" itemValue="#{null}"/>
                                        <f:selectItems value="#{acervoJsfBean.idiomaList}" var="i" itemLabel="#{i.idiDescricao}"   itemValue="#{i}"/>
                                    </p:selectOneMenu>

                                    <h:outputLabel id="aceLocalizacao_lbl" value="Localização:" for="aceLocalizacao" />
                                    <p:inputText id="aceLocalizacao" value="#{acervoJsfBean.crudObj.aceLocalizacao}" style="width: 40%" maxlength="10"/>

                                    <h:outputLabel id="aceCutter_lbl" value="Cutter:" for="aceCutter" />
                                    <p:inputText id="aceCutter" value="#{acervoJsfBean.crudObj.aceCutter}" style="width: 25%" maxlength="10"/>

                                    <h:outputLabel id="aceCdd_lbl" value="CDD:" for="aceCdd" />
                                    <p:inputText id="aceCdd" value="#{acervoJsfBean.crudObj.aceCdd}" style="width: 25%" maxlength="10"/>

                                    <p:outputLabel id="classificacao_lbl" value="Classificação Decimal Universal" for="acClass"/>
                                    <p:autoComplete id="acClass" completeMethod="#{acervoJsfBean.completaClassificacao}" multiple="true" required="false" requiredMessage="Informe a classificação" forceSelection="true"
                                                    dropdown="true" var="c" itemLabel="#{c.clasDescricao}" itemValue="#{c.clasDescricao}" value="#{acervoJsfBean.crudObj.aceCdu}">
                                        <p:ajax event="itemSelect" listener="#{acervoJsfBean.classificacaoList}"/>  
                                    </p:autoComplete> 

                                </h:panelGrid>
                            </h:panelGrid>
                        </p:fieldset>

                        <br/>

                        <p:fieldset legend="Autores" toggleable="false" toggleSpeed="500">
                            <h:panelGrid id="panelAutoresL" columns="3" width="100%" style="text-align:left" >

                                <p:dataTable id="tabela2" value="#{acervoJsfBean.autoresL}" var="item"
                                             emptyMessage="Nenhum registro encontrado.">
                                    <p:growl id="grow3" life="1000"/>

                                    <p:column headerText="Nome" style="width: 100%">
                                        <h:outputText value="#{item.acxautautor.autDescricao}"/>  
                                    </p:column> 
                                    <p:column headerText="Código" style="width:06%">
                                        <h:outputText value="#{item.acxautautor.autCodigo}" />  
                                    </p:column> 
                                    <p:column headerText="Ação" style="width:06%">
                                        <p:commandLink value="Remover"  update="@form">  
                                            <p:collector value="#{item}"  
                                                         removeFrom="#{acervoJsfBean.autoresL}" />  
                                        </p:commandLink>
                                    </p:column>

                                </p:dataTable>
                            </h:panelGrid>
                            <br/>
                            <p:commandButton id="AutoresBtn" value="Autores do acervo" onclick="autoresDialog.show()"
                                             visivel="#{sec:ifAnyGranted('ADM')}" image="cad-basico"/>


                        </p:fieldset>

                        <br/>

                        <p:dialog header="Selecione os autores do acervo" widgetVar="autoresDialog" id="autoresDlg" modal="true" position="400,50">

                            <p:panel header="Filtros de Consulta" id="parametros2" toggleable="true" collapsed="false">
                                <table border="0" cellpadding="2" cellspacing="0" style="margin-right: 40px">
                                    <b>Descrição:</b>
                                    <br/>
                                    <p:inputText size="40" value="#{autoresJsfBean.autDescricao}"/><br/>
                                    <span class="field_hint">Informe qualquer parte da descrição</span>
                                    <br/>
                                    <br/>
                                    <tr>
                                        <td>
                                            <p:commandButton actionListener="#{autoresJsfBean.atualizar}" value="Consultar" image="search"
                                                             update="tabela5" process="parametros2"/>
                                            <treap:btnAdicionar label="Novo Autor"  bean="#{acervoJsfBean}" url="autores.xhtml?faces-redirect=true" immediate="true"/>

                                        </td>                                
                                    </tr>

                                </table>
                            </p:panel> 

                            <p:dataTable id="tabela5" value="#{autoresJsfBean.autoresList}" var="autor" 
                                         emptyMessage="Nenhum registro encontrado." 
                                         paginator="true" rows="15"  pageLinks="15"
                                         paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} Registros por página: {RowsPerPageDropdown}"
                                         rowsPerPageTemplate="15,25,35,50"> 

                                <p:column headerText="Código" style="width:06%">
                                    <h:outputText value="#{autor.autCodigo}" />  
                                </p:column>              
                                <p:column headerText="Descrição" sortBy="#{autor.autDescricao}">
                                    <h:outputText value="#{autor.autDescricao}"/>  
                                </p:column>
                      
                                <p:column headerText="Ações" style="width:06%">

                                    <p:commandLink  value="Adicionar" 
                                                    update="@form"
                                                    immediate="true"
                                                    ajax="false"
                                                    onclick="autoresDialog.hide()"
                                                    action="#{acervoJsfBean.reinit}">
                                                    <f:setPropertyActionListener target="#{acervoJsfBean.acervoxAutores.acxautacervo}" value="#{acervoJsfBean.crudObj}"/>
                                        <f:setPropertyActionListener target="#{acervoJsfBean.acervoxAutores.acxautautor}" value="#{autor}"/>

                                        <p:collector value="#{acervoJsfBean.acervoxAutores}"   
                                                     addTo="#{acervoJsfBean.autoresL}">
                                        </p:collector>
                                    </p:commandLink>
                                </p:column>

                            </p:dataTable> 
                            <br/>

                        </p:dialog>

                        <p:fieldset legend="Observações" toggleable="false" toggleSpeed="500">

                            <h:panelGrid columns="3" width="100%" style="text-align:center">
                                <h:panelGrid columns="2" style=" text-align: center">
                                    <p:editor id="aceObs" value="#{acervoJsfBean.crudObj.aceObs}"/>
                                </h:panelGrid>
                            </h:panelGrid>
                            <h:outputLabel/>

                            <h:panelGrid columns="2">
                                <treap:btnCrudSalvar bean="#{acervoJsfBean}"/>
                                <treap:btnCrudCancelar bean="#{acervoJsfBean}"/>
                            </h:panelGrid>

                        </p:fieldset>               

                    </p:tab>
                </p:tabView> 
            </ui:define>
        </ui:composition>
    </body>
</html>




Obrigado

Que lista ? no seu codigo so uma rapida olhada vi uns 3 datatable.

Olá, desculpa hehe.

Linha 338 mais precisamente, ma lista autoresL, que eh a lista dos autores que eu seleciono para o acervo.
já esta gravando no banco coomo mestre detalhe, mas soh 1 autores pois quando adiciono mais um ele substitui, valeu

e ai, alguma sugestão ?

obg

O problema pode está relacionado ao seu equals e hashcode do objeto.
Por exemplo imagine que o seu equals seja pelo id da entidade, e esse “id” está nulo, ao ser adicionado na lista caso ja exista outro objeto com id nulo, então por conta do equals eles serão iguais e então será substituído.

[quote=ayslanms]O problema pode está relacionado ao seu equals e hashcode do objeto.
Por exemplo imagine que o seu equals seja pelo id da entidade, e esse “id” está nulo, ao ser adicionado na lista caso ja exista outro objeto com id nulo, então por conta do equals eles serão iguais e então será substituído.[/quote]

ok, entendi mais ou menos oque voce quis dizer, mas … oque devo fazer ? não tenho nem ideia, enquanto isso vou estudar equals e hascode.

[quote=Elvis Fabiane][quote=ayslanms]O problema pode está relacionado ao seu equals e hashcode do objeto.
Por exemplo imagine que o seu equals seja pelo id da entidade, e esse “id” está nulo, ao ser adicionado na lista caso ja exista outro objeto com id nulo, então por conta do equals eles serão iguais e então será substituído.[/quote]

ok, entendi mais ou menos oque voce quis dizer, mas … oque devo fazer ? não tenho nem ideia, enquanto isso vou estudar equals e hascode.[/quote]

Bom dia!

Se for isto você deve sobreescrever estes métodos na sua classe que é adicionada a lista.
Veja: http://stackoverflow.com/questions/27581/overriding-equals-and-hashcode-in-java

Obs. se estiver usando o eclipse ele pode fazer isto pra você!

[]s

[quote=Filipe A.][quote=Elvis Fabiane][quote=ayslanms]O problema pode está relacionado ao seu equals e hashcode do objeto.
Por exemplo imagine que o seu equals seja pelo id da entidade, e esse “id” está nulo, ao ser adicionado na lista caso ja exista outro objeto com id nulo, então por conta do equals eles serão iguais e então será substituído.[/quote]

ok, entendi mais ou menos oque voce quis dizer, mas … oque devo fazer ? não tenho nem ideia, enquanto isso vou estudar equals e hascode.[/quote]

Bom dia!

Se for isto você deve sobreescrever estes métodos na sua classe que é adicionada a lista.
Veja: http://stackoverflow.com/questions/27581/overriding-equals-and-hashcode-in-java

[]s
[/quote]

Olá, obrigado pela ajuda; vou testar e depois posto o resultado…

:smiley:

Não taá funcionando, tentei mexer no equal e no hascode mas mesmo assim, ele ou substitui ou adiciona e troca o anterior, por exemplo:
Adiciono Bruno, ai depois Paulo, ele me mostra 2 Paulo, se add mais um (Marcos) me mostra 3 marcos na lista e assim por diante.

Obrigado pela atenção.

O que leva a pensar que ele esta incrementando sua lista, porem esta repetindo o ultimo registro cadastrado. Logo, talvez na sua consulta voce esteja pesquisando por descricao, ou fazendo um filtro em algum lugar,

faz um teste tirando

<p:collector value="#{acervoJsfBean.acervoxAutores}" addTo="#{acervoJsfBean.autoresL}">

Deixando o datatable limpinho, somente para exibicao da lista, e veja se esta retornando o resultado que voce quer, se estiver entao voce logo logo descobrira a causa, se nao, ai o problema é mais em baixo.

[quote=rof20004]O que leva a pensar que ele esta incrementando sua lista, porem esta repetindo o ultimo registro cadastrado. Logo, talvez na sua consulta voce esteja pesquisando por descricao, ou fazendo um filtro em algum lugar,

faz um teste tirando

<p:collector value="#{acervoJsfBean.acervoxAutores}" addTo="#{acervoJsfBean.autoresL}">

Deixando o datatable limpinho, somente para exibicao da lista, e veja se esta retornando o resultado que voce quer, se estiver entao voce logo logo descobrira a causa, se nao, ai o problema é mais em baixo.[/quote]

Fazendo o teste percebo que a minha lista de autores carrega normal, inclusi o filtro (só tenho por descrição) funciona direitinho, vou por devolta o collector

<p:collector value="#{acervoJsfBean.acervoxAutores}" addTo="#{acervoJsfBean.autoresL}">

para que eu possa add o objeto na lista, senao nao tem como, ai em baixo esta o equals e o hascode gerado automaticamente pelo netbeans.

@Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final AcervoxAutores other = (AcervoxAutores) obj;
        if (this.acxautCodigo != other.acxautCodigo && (this.acxautCodigo == null || !this.acxautCodigo.equals(other.acxautCodigo))) {
            return false;
        }
        if (this.acxautautor != other.acxautautor && (this.acxautautor == null || !this.acxautautor.equals(other.acxautautor))) {
            return false;
        }
        if (this.acxautacervo != other.acxautacervo && (this.acxautacervo == null || !this.acxautacervo.equals(other.acxautacervo))) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 53 * hash + (this.acxautCodigo != null ? this.acxautCodigo.hashCode() : 0);
        hash = 53 * hash + (this.acxautautor != null ? this.acxautautor.hashCode() : 0);
        hash = 53 * hash + (this.acxautacervo != null ? this.acxautacervo.hashCode() : 0);
        return hash;
    }

obrigado