Annotation Interface SelectProvider


@Documented @Retention(RUNTIME) @Target(METHOD) @Repeatable(List.class) public @interface SelectProvider
The annotation that specify a method that provide an SQL for retrieving record(s).

How to use:

 public interface UserMapper {

   @SelectProvider(type = SqlProvider.class, method = "selectById")
   User selectById(int id);

   public static class SqlProvider {
     public static String selectById() {
       return "SELECT id, name FROM users WHERE id = #{id}";
     }
   }

 }
 
Author:
Clinton Begin
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static @interface 
    The container annotation for SelectProvider.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    boolean
    Returns whether this select affects DB data.
    e.g.
     
    Specify a method for providing an SQL.
    Specify a type that implements an SQL provider method.
    Specify a type that implements an SQL provider method.
  • Element Details

    • value

      Class<?> value
      Specify a type that implements an SQL provider method.
      Returns:
      a type that implements an SQL provider method
      Since:
      3.5.2
      See Also:
      Default:
      void.class
    • type

      Class<?> type
      Specify a type that implements an SQL provider method.

      This attribute is alias of value().

      Returns:
      a type that implements an SQL provider method
      See Also:
      Default:
      void.class
    • method

      String method
      Specify a method for providing an SQL.

      Since 3.5.1, this attribute can omit.

      If this attribute omit, the MyBatis will call a method that decide by following rules.

      • If class that specified the type() attribute implements the ProviderMethodResolver, the MyBatis use a method that returned by it.
      • If cannot resolve a method by ProviderMethodResolver (= not implement it or it was returned null, the MyBatis will search and use a fallback method that named provideSql from specified type.
      Returns:
      a method name of method for providing an SQL
      Default:
      ""
    • databaseId

      String databaseId
      Returns:
      A database id that correspond this provider
      Since:
      3.5.5
      Default:
      ""
    • affectData

      boolean affectData
      Returns whether this select affects DB data.
      e.g. RETURNING of PostgreSQL or OUTPUT of MS SQL Server.
      Returns:
      true if this select affects DB data; false if otherwise
      Since:
      3.5.12
      Default:
      false