Salut. J'utlise un p collector dans un p dialogue pour récupérer des données dans un p datatable. mais il se trouve qu'a partir de la deuxième insertion il n'ajoute pas une nouvelle ligne dans le p datatable mais remplace la première insertion. J'utilise primefaces 5.0.
voici une partie de la vue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
<h:form id="commanderform">
                   <p:growl id="msgs" />
                   <h:panelGroup id="display" >
                   <p:fieldset legend="INFORMATIONS SUR LES PRODUITS COMMANDES"  >
                    <h:panelGrid columns="8">
                     outputLabel value="#{bundle.CreateCommanderLabel_prixUniteCom}" for="prixUniteCom" />
                        <p:inputText id="prixUniteCom" value="#{viewCommander.commander.prixUniteCom}" title="#{bundle.CreateCommanderTitle_prixUniteCom}" required="true" requiredMessage="#{bundle.CreateCommanderRequiredMessage_prixUniteCom}"/>
                        <p:outputLabel value="#{bundle.CreateCommanderLabel_qteCom}" for="qteCom" />
                        <p:inputText id="qteCom" value="#{viewCommander.commander.qteCom}" title="#{bundle.CreateCommanderTitle_qteCom}" required="true" requiredMessage="#{bundle.CreateCommanderRequiredMessage_qteCom}"/>
 
                        <p:outputLabel value="#{bundle.CreateCommanderLabel_produit}" for="produit" />
                        <p:selectOneMenu id="produit" value="#{viewCommander.commander.produit}" required="true" requiredMessage="#{bundle.EditCommanderRequiredMessage_produit}">
                            <f:selectItems value="#{produitController.produit}"
                                           var="produitItem"
                                           itemValue="#{produitItem}"/>
                        </p:selectOneMenu>
                         <p:commandButton id="btn_reset" value="Reset" type="reset"/>
                         <p:commandButton id="createButton" icon="ui-icon-plus" ajax="true" update="dataliste msgs @parent"  value="ajouter"   >
                            <p:collector   value="#{viewCommander.commander}"  addTo="#{viewCommander.commanders}" unique="false"  />   </p:commandButton>
                    </h:panelGrid>
 
                    </p:fieldset>
 
                </h:panelGroup>
le managedbean
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
@ManagedBean
@RequestScoped
public class viewCommander {
 
    public viewCommander() {
    }
    private List<Commander> commanders = new ArrayList<>();
	private Commander commander = new Commander();
	public List<Commander> getCommanders() {
		return commanders;
	}
	public void setCommanders(List<Commander> commanders) {
		this.commanders = commanders;
	}
	public Commander getCommander() {
		return commander;
	}
	public void setCommander(Commander commander) {
		this.commander = commander;
	}
}
le hash code et le equals qui se trouvent dans la classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 public int hashCode() {
       int hash = 0;
        hash += (commanderPK != null ? commanderPK.hashCode() : 0);
        return hash;
    }
 
    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Commander)) {
            return false;
        }
        Commander other = (Commander) object;
        if ((this.commanderPK == null && other.commanderPK != null) || (this.commanderPK != null && !this.commanderPK.equals(other.commanderPK))) {
            return false;
        }
        return true;
    }