You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2010/01/23 23:13:16 UTC

svn commit: r902500 - in /ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis: executor/BaseExecutor.java executor/CachingExecutor.java executor/Executor.java session/SqlSession.java session/defaults/DefaultSqlSession.java

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;
   }