public class CachingSessionFactory<F> extends java.lang.Object implements SessionFactory<F>, org.springframework.beans.factory.DisposableBean
SessionFactory implementation that caches Sessions for reuse without
requiring reconnection each time the Session is retrieved from the factory.
This implementation wraps and delegates to a target SessionFactory instance.| Constructor and Description |
|---|
CachingSessionFactory(SessionFactory<F> sessionFactory)
Create a CachingSessionFactory with an unlimited number of sessions.
|
CachingSessionFactory(SessionFactory<F> sessionFactory,
int sessionCacheSize)
Create a CachingSessionFactory with the specified session limit.
|
| Modifier and Type | Method and Description |
|---|---|
void |
destroy()
Remove (close) any unused sessions in the pool.
|
Session<F> |
getSession()
Get a session from the pool (or block if none available).
|
void |
resetCache()
Clear the cache of sessions; also any in-use sessions will be closed when
returned to the cache.
|
void |
setPoolSize(int poolSize)
Modify the target session pool size; the actual pool size will adjust up/down
to this size as and when sessions are requested or retrieved.
|
void |
setSessionWaitTimeout(long sessionWaitTimeout)
Sets the limit of how long to wait for a session to become available.
|
public CachingSessionFactory(SessionFactory<F> sessionFactory)
sessionFactory - the underlying session factory.public CachingSessionFactory(SessionFactory<F> sessionFactory, int sessionCacheSize)
sessionFactory - the underlying session factory.sessionCacheSize - the maximum cache size.setSessionWaitTimeout(long),
setPoolSize(int)public void setSessionWaitTimeout(long sessionWaitTimeout)
java.lang.IllegalStateException - if the wait expires prior to a Session becoming available.public void setPoolSize(int poolSize)
public Session<F> getSession()
getSession in interface SessionFactory<F>public void destroy()
destroy in interface org.springframework.beans.factory.DisposableBeanpublic void resetCache()