title: Does MyBatis not allow more than 1 argument in SelectProvider?
body: <p>I have a mapper method like this :</p>
  
  <pre><code>@InsertProvider(class=com.something.class, method="doSomething")
  public void insertSomething(Set&lt;Integer&gt; set, int guideId);
  </code></pre>
  
  <p>and in the something class, I have a method :</p>
  
  <pre><code>public String doSomething(Set&lt;Integer&gt; set, int guideId){
    // do something and returna a query
  }
  </code></pre>
  
  <p>It gives me an error : </p>
  
  <blockquote>
    <p>Error creating SqlSource for SqlProvider. Method 'doSomething' not
    found in SqlProvider 'com.something.class'</p>
  </blockquote>
  
  <p>When I debugged the issue.. I found that in the constructor of <code>ProviderSqlResource</code>, it throws this exception if the no. of arguments are <code>2 or more</code>. I can't think of any reason why they would do that. What's the workaround ?</p>
  
  <p>Here is the method :</p>
  
  <pre><code>public ProviderSqlSource(Configuration config, Object provider) {
      String providerMethodName = null;
      try {
        this.sqlSourceParser = new SqlSourceBuilder(config);
        this.providerType = (Class&lt;?&gt;) provider.getClass().getMethod("type").invoke(provider);
        providerMethodName = (String) provider.getClass().getMethod("method").invoke(provider);
  
        for (Method m : this.providerType.getMethods()) {
          if (providerMethodName.equals(m.getName())) {
            if (m.getParameterTypes().length &lt; 2
                &amp;&amp; m.getReturnType() == String.class) {
              this.providerMethod = m;
              this.providerTakesParameterObject = m.getParameterTypes().length == 1;
            }
          }
        }
      } catch (Exception e) {
        throw new BuilderException("Error creating SqlSource for SqlProvider.  Cause: " + e, e);
      }
      if (this.providerMethod == null) {
        throw new BuilderException("Error creating SqlSource for SqlProvider. Method '"
            + providerMethodName + "' not found in SqlProvider '" + this.providerType.getName() + "'.");
      }
    }
  </code></pre>