In JSR-283 this was part of the interface. While JSR-333 deprecated
the refresh() method and replaces it with revert(), the functionality
is still needed as Session::refresh() has been kept.
If keepChanges is false, this method discards all pending changes
currently recorded in this Session that apply to this Item or any
of its descendants (that is, the subgraph rooted at this Item) and
returns all items to reflect the current saved state. Outside a
transaction this state is simply the current state of persistent
storage. Within a transaction, this state will reflect persistent
storage as modified by changes that have been saved but not yet
committed.
If keepChanges is true then pending change are not discarded but
items that do not have changes pending have their state refreshed
to reflect the current saved state, thus revealing changes made by
other sessions.