|
The Spring Framework | |||||||||
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()
and Session.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()
|
The Spring Framework | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |