0

セル内編集を使用して他のオブジェクトで問題なく動作するにもかかわらず、データテーブル内のオブジェクトを更新するのに問題があります。Audit というオブジェクトがあり、このようなオブジェクト Statu とオブジェクト utilisateur が含まれています。

    private int id;
private Statu statu;
private Utilisateur utilisateur;
private OrganismeAudite organismeAudite;
private String date;
private String personneRencontre;

データテーブルで私は:

<p:dataTable var="car" value="#{AuditBean.listAudit}" id="carList" editable="true">
       <p:ajax event="rowEdit" update="@this"
               listener="#{AuditBean.rowEditListener}" />
       <f:facet name="header">  
           Modification  
       </f:facet>

       <p:column headerText="ID" style="width:125px">
           <p:cellEditor>
               <f:facet name="output">
                   <h:outputText value="#{car.id}" />
               </f:facet>
               <f:facet name="input">
                   <p:inputText value="#{car.id}" style="width:100%" />
               </f:facet>
           </p:cellEditor>
       </p:column>

       <p:column headerText="Date" style="width:125px">
           <p:cellEditor>
               <f:facet name="output">
                   <h:outputText value="#{car.date}" />
               </f:facet>
               <f:facet name="input">
                   <p:inputText value="#{car.date}" style="width:100%" label="Year" />
               </f:facet>
           </p:cellEditor>
       </p:column>



       <p:column headerText="Personne Rencontre" style="width:125px">
           <p:cellEditor>
               <f:facet name="output">
                   <h:outputText value="#{car.personneRencontre}" />
               </f:facet>
               <f:facet name="input">
                   <h:inputText value="#{car.personneRencontre}" />
               </f:facet>
           </p:cellEditor>
       </p:column>


       <p:column headerText="Responsable Audit">
           <p:cellEditor>
               <f:facet name="output">
                   <h:outputText value="#{car.utilisateur.nom}" />
               </f:facet>
               <f:facet name="input">
                   <p:selectOneMenu id="idUtilisateur" value="#{car.utilisateur.idutilisateur}">
                       <f:selectItems value="#{UtilisateurBean.listUtilsa}"
                                      var="utilisateur" itemLabel="#{car.utilisateur.nom}"
                                      itemValue="#{car.utilisateur.idutilisateur}" />
                   </p:selectOneMenu>
               </f:facet>
           </p:cellEditor>
       </p:column>

       <p:column headerText="Statut Audit" style="width:125px">
           <p:cellEditor>
               <f:facet name="output">
                   <h:outputText value="#{car.statu.libelle}" />
               </f:facet>
               <f:facet name="input">
                   <p:selectOneMenu id="idStatut" value="#{car.statu.id}">

                       <f:selectItems var="statu" value="#{StatusBeane.listSta}"
                                      itemLabel="#{car.statu.libelle}"
                                      itemValue="#{car.statu.id}" />
                   </p:selectOneMenu>
               </f:facet>
           </p:cellEditor>
       </p:column>


       <p:column headerText="Organisme Audité" style="width:125px">
           <p:cellEditor>
               <f:facet name="output">
                   <h:outputText value="#{car.organismeAudite.nom}" />
               </f:facet>

               <f:facet name="input">
                   <p:selectOneMenu id="idOrganisme" value="#{AuditBean.idOrganisme}">
                       <f:selectItems var="orgStA" value="#{OrganismeAuditeBean.listOrga}" />
                   </p:selectOneMenu>
               </f:facet>
           </p:cellEditor>
       </p:column>

       <p:column headerText="Options" style="width:50px">
           <p:rowEditor />
       </p:column>

   </p:dataTable>

責任ある監査列は問題なく更新されますが、ステータス監査列では機能しません。どちらも1対多の関係です(私は休止状態と春のiocを使用しています)

int の Bean は次のようになります。

    public void rowEditListener(RowEditEvent ev) {
    try {
        Audit userEdit = (Audit) ev.getObject();
        Utilisateur u= new Utilisateur();
        Statu sta=new Statu();
        System.out.println(userEdit.getStatu().getId());
        // getUserEJB().save(userEdit);
        System.out.println(userEdit.getDate() + " - " + userEdit.getId()+" - "+userEdit.getUtilisateur().getIdutilisateur()+" - "+userEdit.getStatu().getLibelle());
        resp.update(userEdit);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

今、ステータスを選択すると、userEdit.getStatu().getLibelle() は、リストから選択したものではなく、元のステータスを表示しますが、チェックインコンをクリックすると、毎回 1 つの値のみが保存されます。秒要素(ステータス)!!!!!!!!!!!!!!!!

何が間違っているのかわかりません 事前に感謝します:)

4

0 に答える 0