Author: cbegin Date: Sat Jan 23 22:13:15 2010 New Revision: 902500 URL: http://svn.apache.org/viewvc?rev=902500&view=rev Log: implemented ibatis 691 Ability to clear local cache
Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/CachingExecutor.java ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/Executor.java ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSession.java ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSession.java Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java?rev=902500&r1=902499&r2=902500&view=diff ============================================================================== --- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java (original) +++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java Sat Jan 23 22:13:15 2010 @@ -64,7 +64,7 @@ public int update(MappedStatement ms, Object parameter) throws SQLException { ErrorContext.instance().resource(ms.getResource()).activity("executing an update").object(ms.getId()); if (closed) throw new ExecutorException("Executor was closed."); - localCache.clear(); + clearLocalCache(); return doUpdate(ms, parameter); } @@ -145,7 +145,7 @@ if (closed) { throw new ExecutorException("Cannot commit, transaction is already closed"); } - localCache.clear(); + clearLocalCache(); flushStatements(); if (required) { transaction.commit(); @@ -154,13 +154,19 @@ public void rollback(boolean required) throws SQLException { if (!closed) { - localCache.clear(); + clearLocalCache(); if (required) { transaction.rollback(); } } } + public void clearLocalCache() { + if (!closed) { + localCache.clear(); + } + } + protected abstract int doUpdate(MappedStatement ms, Object parameter) throws SQLException; Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/CachingExecutor.java URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/CachingExecutor.java?rev=902500&r1=902499&r2=902500&view=diff ============================================================================== --- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/CachingExecutor.java (original) +++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/CachingExecutor.java Sat Jan 23 22:13:15 2010 @@ -97,6 +97,10 @@ throw new UnsupportedOperationException("The CachingExecutor should not be used by result loaders and thus deferLoad() should never be called."); } + public void clearLocalCache() { + delegate.clearLocalCache(); + } + private void flushCacheIfRequired(MappedStatement ms) { Cache cache = ms.getCache(); if (cache != null) { Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/Executor.java URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/Executor.java?rev=902500&r1=902499&r2=902500&view=diff ============================================================================== --- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/Executor.java (original) +++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/Executor.java Sat Jan 23 22:13:15 2010 @@ -28,6 +28,8 @@ boolean isCached(MappedStatement ms, CacheKey key); + void clearLocalCache(); + void deferLoad(MappedStatement ms, MetaObject resultObject, String property, CacheKey key); Transaction getTransaction(); Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSession.java URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSession.java?rev=902500&r1=902499&r2=902500&view=diff ============================================================================== --- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSession.java (original) +++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSession.java Sat Jan 23 22:13:15 2010 @@ -41,6 +41,8 @@ void close(); + void clearCache(); + Configuration getConfiguration(); <T> T getMapper(Class<T> type); Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSession.java URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSession.java?rev=902500&r1=902499&r2=902500&view=diff ============================================================================== --- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSession.java (original) +++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSession.java Sat Jan 23 22:13:15 2010 @@ -167,6 +167,10 @@ return executor.getTransaction().getConnection(); } + public void clearCache() { + executor.clearLocalCache(); + } + private boolean isCommitOrRollbackRequired(boolean force) { return (!autoCommit && dirty) || force; }