我使用的是JavaEE,JSF 2.2和hibernate 4.3.1。
通常在保存选定的行时,我只需要这样保存:
<ui:repeat value="#{casesBean.editableNotes}" var="notes" varStatus="status">
<table style="width:100%" class="tables">
<tr>
<th>
<h:outputText value="Officer : "/>
</th>
<th>
<h:inputText value="#{notes.creator}"/>
</th>
</table>
</ui:repeat>
<p:commandButton value="Update" action="#{casesBean.save(notes)}">
豆:
public void save(Notes notes){
this.currentNote = notes;
Notes notes = new Notes(currentNote.creator.... all the items here);
helper.updateNote(notes);
}
助手:
public void updateNote(Notes notes) {
Transaction transaction = null;
session = HibernateUtil.getSessionFactory().openSession();
try {
transaction = session.beginTransaction();
session.update(notes);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
if (transaction != null) {
transaction.rollback();
}
} finally {
session.close();
}
}
但这种方式只能保存选定的行/记录,这意味着只保存一条记录。如何通过单击按钮同时保存DataModel editableNotes中的所有记录?