public class ConfluenceOpenSessionInViewFilter
extends org.springframework.orm.hibernate.support.OpenSessionInViewFilter
com.atlassian.spring.filter.FlushingSpringSessionInViewFilter and FlushingSpringSessionInViewFilterForHibernate.
We don't need all those subclasses and a library dependency. Simplifying to one subclass that extends the default OpenSessionInViewFilter and moving into core.
Also added the ability to control whether the session should be flushed, by adding a check against the FlushMode of the session. For requests that perform read-only operations (such as Session.get() and Session.find()) against the database, flushing is unnecessary.
Flushing does a dirty check against all objects attached to the session and attempts a synchronization with the database if necessary. This can be potentially very expensive as more objects are loaded into the session. It can also cause hibernate to acquire locks on the database for objects attached to the session that the client had absolutely no intention to change. In summary, performing read-only Session operations with a flush can produce unnecessary locking risks.
DEFAULT_SESSION_FACTORY_BEAN_NAME| Constructor and Description |
|---|
ConfluenceOpenSessionInViewFilter() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
closeSession(net.sf.hibernate.Session session,
net.sf.hibernate.SessionFactory sessionFactory) |
protected void |
doFilterInternal(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
javax.servlet.FilterChain filterChain) |
getSession, getSessionFactoryBeanName, isSingleSession, lookupSessionFactory, lookupSessionFactory, openSession, setSessionFactoryBeanName, setSingleSessiondoFilter, getAlreadyFilteredAttributeName, isAsyncDispatch, isAsyncStarted, shouldNotFilter, shouldNotFilterAsyncDispatch, shouldNotFilterErrorDispatchprotected void doFilterInternal(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
javax.servlet.FilterChain filterChain)
throws javax.servlet.ServletException,
IOException
doFilterInternal in class org.springframework.orm.hibernate.support.OpenSessionInViewFilterjavax.servlet.ServletExceptionIOExceptionprotected void closeSession(net.sf.hibernate.Session session,
net.sf.hibernate.SessionFactory sessionFactory)
closeSession in class org.springframework.orm.hibernate.support.OpenSessionInViewFilterCopyright © 2003–2017 Atlassian. All rights reserved.