| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface SessionFactory
The SessionFactory interface serves as factory for TopLink Sessions, allowing for dependency injection on thread-safe TopLink-based DAOs. Used by TopLinkAccessor/Template and TopLinkTransactionManager.
In contrast to JDO or Hibernate (which define native PersistenceManagerFactory and SessionFactory interfaces, respectively), TopLink itself does not provide such a factory interface: hence, it is necessary to define it within Spring. Note that this interface does not depend on any other Spring interfaces or classes, to allow for keeping TopLink-based DAOs as independent as possible.
TopLinkAccessor.setSessionFactory(org.springframework.orm.toplink.SessionFactory), 
TopLinkTransactionManager.setSessionFactory(org.springframework.orm.toplink.SessionFactory)| Method Summary | |
|---|---|
|  void | close()Close this SessionFactory, shutting down all internal resources. | 
|  oracle.toplink.sessions.Session | createManagedClientSession()Create a new managed TopLink client Session for the current context. | 
|  oracle.toplink.sessions.Session | createSession()Create a plain TopLink Session for the current application context. | 
|  oracle.toplink.sessions.Session | createTransactionAwareSession()Create a new transaction-aware TopLink Session that exposes the currently active Session and UnitOfWork via Session.getActiveSession()andSession.getActiveUnitOfWork(), respectively. | 
| Method Detail | 
|---|
oracle.toplink.sessions.Session createSession()
                                              throws oracle.toplink.exceptions.TopLinkException
The returned Session will participate in JTA transactions (provided that TopLink is configured with a corresponding external transaction controller), but not in Spring-managed transactions (by TopLinkTransactionManager).
This is the factory method to be called by TopLink data access code,
 usually through the SessionFactoryUtils.getSession method
 that checks for a transactional (thread-bound) Session first.
oracle.toplink.exceptions.TopLinkException - in case of errorsSessionFactoryUtils.getSession(SessionFactory, boolean)
oracle.toplink.sessions.Session createManagedClientSession()
                                                           throws oracle.toplink.exceptions.TopLinkException
The returned Session will be prepared to be managed within a Spring transaction (by TopLinkTransactionManager). It will carry an active UnitOfWork that expects to be committed at transaction completion, just like a plain TopLink Session does within a JTA transaction.
This method is only supposed to be called by Spring's TopLinkTransactionManager or similar TopLink-based transaction managers. If a SessionFactory does not support managed Sessions, it should throw an UnsupportedOperationException.
oracle.toplink.exceptions.TopLinkException - in case of errorsSession.getActiveUnitOfWork()
oracle.toplink.sessions.Session createTransactionAwareSession()
                                                              throws oracle.toplink.exceptions.TopLinkException
Session.getActiveSession()
 and Session.getActiveUnitOfWork(), respectively.
 Such a Session reference can be used analogously to a managed TopLink Session in a JTA environment, with Spring-managed transactions backing it.
It is usually preferable to let DAOs work with a full SessionFactory,
 accessing TopLink Sessions via SessionFactoryUtils.getSession.
 However, a transaction-aware TopLink Session reference does not impose any
 Spring dependency, so might be preferable if you'd like to keep your data
 access code tied to TopLink API only.
oracle.toplink.exceptions.TopLinkException - in case of errorsSession.getActiveSession(), 
Session.getActiveUnitOfWork()void close()
| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||