Message-ID: <669702561.5337.1369503217676.JavaMail.email@example.com> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_5336_2087214558.1369503217675" ------=_Part_5336_2087214558.1369503217675 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
The persistence implementation is using the Unit Of Work implementation and the UnitOfWorkProtocol aspect to achive completely t= ransparent persistence. You can register one or many listeners to the Unit Of Work which will be called u= pon begin, commit, rollback etc.
Each persistence component consists of two parts:
See the UnitOfWorkProtocol= for details on how to define the Unit Of Work aspect, e.g. on which methods a new transaction should = be started, committed and rollbacked, which domain objects you want to to b= ecome transactional (you want to persist) etc.
All persistence implementations works great in conjunction with each oth= er or with the Transacti= on Demarcation component, which can for example make the persistence ma= nagement aware of JTA two-phase commit transactions etc. You just register = your listeners in the Unit Of Work<= /a> and the complete transaction will not be committed until all= strong> listeners have agreed on that.