我无法更新数据表中的对象,即使它使用incell edeting可以很好地处理其他对象: 我有一个名为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>
责任审计列的更新很好,但在statu审计列中不起作用。他们都是一对多的关系(我正在使用hibernate和spring ioc)
在int中,rowlistener如下所示:
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();
}
}
现在我选择一个statu userEdit.getStatu()。getLibelle()向我显示原始statu不是我从列表中选择的那个,但是如果我点击检查,它每次只保存一个值这是seconde元素(statu)!!!!!!!!!!!!!!!!!
我不知道我做错了什么 提前谢谢:)