public class SessionHandler
extends java.lang.Object
implements org.aopalliance.intercept.MethodInterceptor, org.springframework.context.ApplicationContextAware
HibernateInterceptor for stateless
services but which keeps a WeakHashMap of sessions keyed by
the stateful service reference.
original idea from:
http://opensource2.atlassian.com/confluence/spring/pages/viewpage.action?pageId=1447
See also: http://sourceforge.net/forum/message.php?msg_id=2455707
http://forum.springframework.org/archive/index.php/t-10344.html
http://opensource2.atlassian.com/projects/spring/browse/SPR-746
and these: http://www.hibernate.org/43.html#A5
http://www.carbonfive.com/community/archives/2005/07/ive_been_meanin.html
http://www.hibernate.org/377.html| Constructor and Description |
|---|
SessionHandler(org.hibernate.SessionFactory factory)
Constructor taking a
SessionFactory. |
| Modifier and Type | Method and Description |
|---|---|
void |
cleanThread() |
protected java.lang.Object |
getThis(org.aopalliance.intercept.MethodInvocation invocation) |
java.lang.Object |
invoke(org.aopalliance.intercept.MethodInvocation invocation)
delegates to
HibernateInterceptor or manages sessions internally,
based on the type of service. |
protected void |
putStatus(org.aopalliance.intercept.MethodInvocation invocation,
ome.tools.hibernate.SessionStatus status) |
protected ome.tools.hibernate.SessionStatus |
removeStatus(org.aopalliance.intercept.MethodInvocation invocation) |
void |
setApplicationContext(org.springframework.context.ApplicationContext applicationContext) |
public SessionHandler(org.hibernate.SessionFactory factory)
SessionFactory.
A new HibernateInterceptor will be created.factory - Not null.public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
throws org.springframework.beans.BeansException
setApplicationContext in interface org.springframework.context.ApplicationContextAwareorg.springframework.beans.BeansExceptionprotected java.lang.Object getThis(org.aopalliance.intercept.MethodInvocation invocation)
protected void putStatus(org.aopalliance.intercept.MethodInvocation invocation,
ome.tools.hibernate.SessionStatus status)
protected ome.tools.hibernate.SessionStatus removeStatus(org.aopalliance.intercept.MethodInvocation invocation)
public void cleanThread()
public java.lang.Object invoke(org.aopalliance.intercept.MethodInvocation invocation)
throws java.lang.Throwable
HibernateInterceptor or manages sessions internally,
based on the type of service.invoke in interface org.aopalliance.intercept.MethodInterceptorjava.lang.Throwable