|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.mybatis.spring.SqlSessionUtils
public final class SqlSessionUtils
Handles MyBatis SqlSession life cycle. It can register and get SqlSessions from
Spring TransactionSynchronizationManager
. Also works if no transaction is active.
DataSourceUtils
,
TransactionSynchronizationManager
Method Summary | |
---|---|
static void |
closeSqlSession(org.apache.ibatis.session.SqlSession session,
org.apache.ibatis.session.SqlSessionFactory sessionFactory)
Checks if SqlSession passed as an argument is managed by Spring TransactionSynchronizationManager
If it is not, it closes it, otherwise it just updates the reference counter and
lets Spring call the close callback when the managed transaction ends |
static org.apache.ibatis.session.SqlSession |
getSqlSession(org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory)
Creates a new MyBatis SqlSession from the SqlSessionFactory
provided as a parameter and using its DataSource and ExecutorType |
static org.apache.ibatis.session.SqlSession |
getSqlSession(org.apache.ibatis.session.SqlSessionFactory sessionFactory,
org.apache.ibatis.session.ExecutorType executorType)
If a Spring transaction is active it uses DataSourceUtils to get a
Spring managed Connection , then creates a new SqlSession
with this connection and synchronizes it with the transaction. |
static boolean |
isSqlSessionTransactional(org.apache.ibatis.session.SqlSession session,
org.apache.ibatis.session.SqlSessionFactory sessionFactory)
Returns if the SqlSession passed as an argument is being managed by Spring |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method Detail |
---|
public static org.apache.ibatis.session.SqlSession getSqlSession(org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory)
SqlSession
from the SqlSessionFactory
provided as a parameter and using its DataSource
and ExecutorType
sqlSessionFactory
- a MyBatis SqlSessionFactory to create new sessions
org.springframework.dao.TransientDataAccessResourceException
- if a transaction is active and the
SqlSessionFactory is not using a SpringManagedTransactionFactorypublic static org.apache.ibatis.session.SqlSession getSqlSession(org.apache.ibatis.session.SqlSessionFactory sessionFactory, org.apache.ibatis.session.ExecutorType executorType)
DataSourceUtils
to get a
Spring managed Connection
, then creates a new SqlSession
with this connection and synchronizes it with the transaction.
If there is not an active transaction it gets a connection directly from
the DataSource
and creates a SqlSession
with it.
org.springframework.dao.TransientDataAccessResourceException
- if a transaction is active and the
SqlSessionFactory
is not using a SpringManagedTransactionFactory
SpringManagedTransactionFactory
public static void closeSqlSession(org.apache.ibatis.session.SqlSession session, org.apache.ibatis.session.SqlSessionFactory sessionFactory)
SqlSession
passed as an argument is managed by Spring TransactionSynchronizationManager
If it is not, it closes it, otherwise it just updates the reference counter and
lets Spring call the close callback when the managed transaction ends
session
- sessionFactory
- public static boolean isSqlSessionTransactional(org.apache.ibatis.session.SqlSession session, org.apache.ibatis.session.SqlSessionFactory sessionFactory)
SqlSession
passed as an argument is being managed by Spring
session
- a MyBatis SqlSession to checksessionFactory
- the SqlSessionFactory which the SqlSession was built with
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |