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