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 2009/10/12 21:47:05 UTC

svn commit: r824470 - in /ibatis/java/ibatis-3/trunk/ibatis-3-core/src: main/java/org/apache/ibatis/builder/annotation/ test/java/org/apache/ibatis/binding/

Author: cbegin
Date: Mon Oct 12 19:47:05 2009
New Revision: 824470

URL: http://svn.apache.org/viewvc?rev=824470&view=rev
Log:
Fixed MapperAnnotationBuilder as it was missed in the refactoring for multiple parameters.

Modified:
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationBuilder.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationBuilder.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationBuilder.java?rev=824470&r1=824469&r2=824470&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationBuilder.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationBuilder.java Mon Oct 12 19:47:05 2009
@@ -12,6 +12,7 @@
 import org.apache.ibatis.io.Resources;
 import org.apache.ibatis.mapping.*;
 import org.apache.ibatis.session.Configuration;
+import org.apache.ibatis.session.RowBounds;
 import org.apache.ibatis.type.JdbcType;
 
 import java.io.IOException;
@@ -206,10 +207,14 @@
   private Class getParameterType(Method method) {
     Class parameterType = null;
     Class[] parameterTypes = method.getParameterTypes();
-    if (parameterTypes.length == 1 || parameterTypes.length == 3) {
-      // Methods with 1 or 3 parameters have a value parameter
-      // (the other two params are offset/limit parameters for multiple selects)
-      parameterType = parameterTypes[0];
+    for(int i=0; i<parameterTypes.length;i++) {
+      if (!RowBounds.class.isAssignableFrom(parameterTypes[i])) {
+        if (parameterType == null) {
+          parameterType = parameterTypes[i];
+        } else {
+          parameterType = Map.class;
+        }
+      }
     }
     return parameterType;
   }

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java?rev=824470&r1=824469&r2=824470&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java Mon Oct 12 19:47:05 2009
@@ -159,6 +159,30 @@
   }
 
   @Test
+  public void shouldSelectListOfPostsLike() {
+    SqlSession session = sqlSessionFactory.openSession();
+    try {
+      BoundBlogMapper mapper = session.getMapper(BoundBlogMapper.class);
+      List<Post> posts = mapper.selectPostsLike(new RowBounds(1,1),"%a%");
+      assertEquals(1, posts.size());
+    } finally {
+      session.close();
+    }
+  }
+
+  @Test
+  public void shouldSelectListOfPostsLikeTwoParameters() {
+    SqlSession session = sqlSessionFactory.openSession();
+    try {
+      BoundBlogMapper mapper = session.getMapper(BoundBlogMapper.class);
+      List<Post> posts = mapper.selectPostsLikeSubjectAndBody(new RowBounds(1,1),"%a%","%a%");
+      assertEquals(1, posts.size());
+    } finally {
+      session.close();
+    }
+  }
+
+  @Test
   public void shouldExecuteBoundSelectOneBlogStatement() {
     SqlSession session = sqlSessionFactory.openSession();
     try {

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java?rev=824470&r1=824469&r2=824470&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java Mon Oct 12 19:47:05 2009
@@ -4,6 +4,7 @@
 import domain.blog.DraftPost;
 import domain.blog.Post;
 import org.apache.ibatis.annotations.*;
+import org.apache.ibatis.session.RowBounds;
 
 import java.util.List;
 import java.util.Map;
@@ -82,4 +83,16 @@
 
   //======================================================
 
+  @Select("SELECT * FROM " +
+    "post WHERE subject like #{query}")
+  List<Post> selectPostsLike(RowBounds bounds, String query);
+
+  //======================================================
+
+  @Select("SELECT * FROM " +
+    "post WHERE subject like #{subjectQuery} and body like #{bodyQuery}")
+  List<Post> selectPostsLikeSubjectAndBody(RowBounds bounds,
+                             @Param("subjectQuery") String subjectQuery,
+                             @Param("bodyQuery") String bodyQuery);
+
 }