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