|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.atlassian.confluence.core.persistence.hibernate.HibernateSessionManager
public class HibernateSessionManager
Provides methods to manage objects in the current Hibernate Session. Methods will
throw IllegalStateException if there is no active session on the executing thread.
Session,
SessionFactoryUtils.getSession(SessionFactory, boolean)| Constructor Summary | |
|---|---|
HibernateSessionManager(net.sf.hibernate.SessionFactory sessionFactory,
org.springframework.transaction.PlatformTransactionManager transactionManager)
|
|
| Method Summary | ||
|---|---|---|
void |
evict(Object object)
Removes the object and its dependents from the active session. |
|
|
executeWithSessionClearing(Iterable<I> input,
int batchSize,
int expectedTotal,
com.google.common.base.Function<I,O> task)
Executes a bulk database update in a way that prevents excessive memory usage, by committing the transaction and clearing the session periodically. |
|
net.sf.hibernate.Session |
getSession()
Returns the current session. |
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public HibernateSessionManager(net.sf.hibernate.SessionFactory sessionFactory,
org.springframework.transaction.PlatformTransactionManager transactionManager)
| Method Detail |
|---|
public net.sf.hibernate.Session getSession()
IllegalStateException - if there is no active sessionpublic void evict(Object object)
IllegalStateException - if there is no active session
org.springframework.dao.DataAccessException - if there is a problem evicting the objectSession.evict(Object)
public <I,O> Iterable<O> executeWithSessionClearing(Iterable<I> input,
int batchSize,
int expectedTotal,
com.google.common.base.Function<I,O> task)
task is executed once per
input item. The commit and session-clearing is done once per batchSize items.
WARNING: the session clearing will discard any unflushed or uncommitted changes made higher in the stack.
Batch operations using this method should generally be done in a separate thread or otherwise outside the
scope of a request.
I - the type of the input itemsO - the type of the resulting items, which can be Voidinput - the list of items to processtask - the task to executebatchSize - a transaction will be committed and the session will be cleared after this many input itemsexpectedTotal - the total number of items, used for logging. A value of 0 indicates expected total is not known.
IllegalStateException - if there is no active session
org.springframework.dao.DataAccessException - if there is a problem committing changes to the database
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||