cbegin
Sat, 23 Jan 2010 14:13:42 -0800
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;
}