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.htmlConstructor 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.ApplicationContextAware
org.springframework.beans.BeansException
protected 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.MethodInterceptor
java.lang.Throwable