Author: cbegin
Date: Sun Oct 11 02:14:26 2009
New Revision: 823998
URL: http://svn.apache.org/viewvc?rev=823998&view=rev
Log:
Hooked in FastResultSetHandler
Added:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NestedResultSetHandler.java
- copied, changed from r823802,
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java
Removed:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/FastResultSetHandler.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/MappedStatement.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/ResultMap.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/Configuration.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/session/SqlSessionTest.java
ibatis/java/ibatis-3/trunk/version.properties
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/FastResultSetHandler.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/FastResultSetHandler.java?rev=823998&r1=823997&r2=823998&view=diff
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/FastResultSetHandler.java
(original)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/FastResultSetHandler.java
Sun Oct 11 02:14:26 2009
@@ -24,7 +24,7 @@
import java.util.List;
import java.util.Set;
-public abstract class FastResultSetHandler implements ResultSetHandler {
+public class FastResultSetHandler implements ResultSetHandler {
protected final Executor executor;
protected final Configuration configuration;
@@ -178,7 +178,7 @@
resultObject = foundValues ? resultObject : null;
return resultObject;
}
- return null;
+ return resultObject;
}
protected ResultLoaderRegistry instantiateResultLoaderRegistry() {
Copied:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NestedResultSetHandler.java
(from r823802,
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java)
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NestedResultSetHandler.java?p2=ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NestedResultSetHandler.java&p1=ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java&r1=823802&r2=823998&rev=823998&view=diff
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java
(original)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NestedResultSetHandler.java
Sun Oct 11 02:14:26 2009
@@ -22,15 +22,24 @@
import java.sql.Statement;
import java.util.*;
-public class DefaultResultSetHandler extends FastResultSetHandler {
+public class NestedResultSetHandler extends FastResultSetHandler {
private final Map<CacheKey, Set<CacheKey>> localRowValueCaches;
private final Map<CacheKey, Object> globalRowValueCache;
- public DefaultResultSetHandler(Executor executor, MappedStatement
mappedStatement, ParameterHandler parameterHandler, ResultHandler
resultHandler, BoundSql boundSql, RowBounds rowBounds) {
+ public NestedResultSetHandler(Executor executor, MappedStatement
mappedStatement, ParameterHandler parameterHandler, ResultHandler
resultHandler, BoundSql boundSql, RowBounds rowBounds) {
super(executor, mappedStatement, parameterHandler, resultHandler,
boundSql, rowBounds);
localRowValueCaches = new HashMap<CacheKey, Set<CacheKey>>();
globalRowValueCache = new HashMap<CacheKey, Object>();
+ ensureNoRowBounds(rowBounds);
+ }
+
+ private void ensureNoRowBounds(RowBounds rowBounds) {
+ if (rowBounds != null
+ && (rowBounds.getLimit() < RowBounds.NO_ROW_LIMIT
+ || rowBounds.getOffset() > RowBounds.NO_ROW_OFFSET)) {
+ throw new ExecutorException("Mapped Statements with nested result
mappings cannot be safely constrained by RowBounds.");
+ }
}
//
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/MappedStatement.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/MappedStatement.java?rev=823998&r1=823997&r2=823998&view=diff
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/MappedStatement.java
(original)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/MappedStatement.java
Sun Oct 11 02:14:26 2009
@@ -28,6 +28,7 @@
private SqlCommandType sqlCommandType;
private KeyGenerator keyGenerator;
private String keyProperty;
+ private boolean hasNestedResultMaps;
private MappedStatement() {
}
@@ -64,6 +65,9 @@
public Builder resultMaps(List<ResultMap> resultMaps) {
mappedStatement.resultMaps = resultMaps;
+ for (ResultMap resultMap : resultMaps) {
+ mappedStatement.hasNestedResultMaps =
mappedStatement.hasNestedResultMaps || resultMap.hasNestedResultMaps();
+ }
return this;
}
@@ -146,6 +150,10 @@
return id;
}
+ public boolean hasNestedResultMaps() {
+ return hasNestedResultMaps;
+ }
+
public Integer getFetchSize() {
return fetchSize;
}
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/ResultMap.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/ResultMap.java?rev=823998&r1=823997&r2=823998&view=diff
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/ResultMap.java
(original)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/ResultMap.java
Sun Oct 11 02:14:26 2009
@@ -14,6 +14,7 @@
private List<ResultMapping> propertyResultMappings;
private Set<String> mappedColumns;
private Discriminator discriminator;
+ private boolean hasNestedResultMaps;
private ResultMap() {
}
@@ -42,6 +43,7 @@
resultMap.constructorResultMappings = new ArrayList<ResultMapping>();
resultMap.propertyResultMappings = new ArrayList<ResultMapping>();
for (ResultMapping resultMapping : resultMap.resultMappings) {
+ resultMap.hasNestedResultMaps = resultMap.hasNestedResultMaps ||
resultMapping.getNestedResultMapId() != null;
final String column = resultMapping.getColumn();
if (column != null) {
resultMap.mappedColumns.add(column.toUpperCase());
@@ -79,6 +81,10 @@
return id;
}
+ public boolean hasNestedResultMaps() {
+ return hasNestedResultMaps;
+ }
+
public Class getType() {
return type;
}
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/Configuration.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/Configuration.java?rev=823998&r1=823997&r2=823998&view=diff
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/Configuration.java
(original)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/Configuration.java
Sun Oct 11 02:14:26 2009
@@ -14,8 +14,9 @@
import org.apache.ibatis.executor.keygen.KeyGenerator;
import org.apache.ibatis.executor.parameter.DefaultParameterHandler;
import org.apache.ibatis.executor.parameter.ParameterHandler;
-import org.apache.ibatis.executor.resultset.DefaultResultSetHandler;
+import org.apache.ibatis.executor.resultset.NestedResultSetHandler;
import org.apache.ibatis.executor.resultset.ResultSetHandler;
+import org.apache.ibatis.executor.resultset.FastResultSetHandler;
import org.apache.ibatis.executor.statement.RoutingStatementHandler;
import org.apache.ibatis.executor.statement.StatementHandler;
import org.apache.ibatis.mapping.*;
@@ -180,7 +181,9 @@
}
public ResultSetHandler newResultSetHandler(Executor executor,
MappedStatement mappedStatement, RowBounds rowBounds, ParameterHandler
parameterHandler, ResultHandler resultHandler, BoundSql boundSql) {
- ResultSetHandler resultSetHandler = new DefaultResultSetHandler(executor,
mappedStatement, parameterHandler, resultHandler, boundSql, rowBounds);
+ ResultSetHandler resultSetHandler = mappedStatement.hasNestedResultMaps() ?
+ new NestedResultSetHandler(executor, mappedStatement,
parameterHandler, resultHandler, boundSql, rowBounds)
+ : new FastResultSetHandler(executor, mappedStatement,
parameterHandler, resultHandler, boundSql, rowBounds);
resultSetHandler = (ResultSetHandler)
interceptorChain.pluginAll(resultSetHandler);
return resultSetHandler;
}
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/session/SqlSessionTest.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/session/SqlSessionTest.java?rev=823998&r1=823997&r2=823998&view=diff
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/session/SqlSessionTest.java
(original)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/session/SqlSessionTest.java
Sun Oct 11 02:14:26 2009
@@ -41,7 +41,7 @@
public void shouldSelectCountOfPosts() throws Exception {
SqlSession session = sqlMapper.openSession();
try {
- int count = (Integer)
session.selectOne("domain.blog.mappers.BlogMapper.selectCountOfPosts");
+ Integer count = (Integer)
session.selectOne("domain.blog.mappers.BlogMapper.selectCountOfPosts");
assertEquals(5, count);
} finally {
session.close();
Modified: ibatis/java/ibatis-3/trunk/version.properties
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/version.properties?rev=823998&r1=823997&r2=823998&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/version.properties (original)
+++ ibatis/java/ibatis-3/trunk/version.properties Sun Oct 11 02:14:26 2009
@@ -1,5 +1,5 @@
#Build version info
-#Sat Aug 29 18:30:00 MDT 2009
+#Sat Oct 10 20:04:35 MDT 2009
version=3.0.0
-buildDate=2009/08/29 18\:30
-buildNum=201
+buildDate=2009/10/10 20\:04
+buildNum=203