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, setSingleSession
doFilter, getAlreadyFilteredAttributeName, isAsyncDispatch, isAsyncStarted, shouldNotFilter, shouldNotFilterAsyncDispatch, shouldNotFilterErrorDispatch
protected 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.OpenSessionInViewFilter
javax.servlet.ServletException
IOException
protected void closeSession(net.sf.hibernate.Session session, net.sf.hibernate.SessionFactory sessionFactory)
closeSession
in class org.springframework.orm.hibernate.support.OpenSessionInViewFilter
Copyright © 2003–2016 Atlassian. All rights reserved.