Allows the application to define units of work, while
maintaining abstraction from the underlying transaction
implementation (eg. JTA, JDBC).
A transaction is associated with a Session and is
usually instantiated by a call to Session.beginTransaction().
A single session might span multiple transactions since
the notion of a session (a conversation between the application
and the datastore) is of coarser granularity than the notion of
a transaction. However, it is intended that there be at most one
uncommitted Transaction associated with a particular
Session at any time.
A transaction is associated with a Session and is usually instantiated by a call to Session.beginTransaction(). A single session might span multiple transactions since the notion of a session (a conversation between the application and the datastore) is of coarser granularity than the notion of a transaction. However, it is intended that there be at most one uncommitted Transaction associated with a particular Session at any time.
Implementors are not intended to be threadsafe.