Data buffering and cloned objects


I’ve been working for some time with JSF and a sound components brand. One recommendation to deal with forms, especially with tables is to clone - wrap data beans into another extended class with two goals in mind:

  1. add additional fields to all objects to support select/unselect in tables
  2. allow every session to work with separate copies of the objects whe they are being edited (otherwise not commited changes to database could be immediately seen by other sessions)

According to what I’ve seen in Vaadin, that wrapping is made with the BeanItem class, which makes all objects equal to tables, forms, etc. The form buffering feature solves the second issue, at the risk changes may be available to another users before they are persisted.

The table component has also commit method and writethrough feature, so if buffering is enabled, commit will affect all the items as a whole? if there are validators in place, will validations be made for all the items or only those edited? If buffering is enabled, will the value changed event be fired at every change or only after commit?