Package org.apache.ibatis.annotations
Annotation Type 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
-
Optional Element Summary
-
Element Details
-
value
Class<?> valueSpecify 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<?> typeSpecify 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 methodSpecify 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 theProviderMethodResolver
, the MyBatis use a method that returned by it. - If cannot resolve a method by
ProviderMethodResolver
(= not implement it or it was returnednull
), the MyBatis will search and use a fallback method that namedprovideSql
from specified type.
- Returns:
- a method name of method for providing an SQL
- Default:
""
- If class that specified the
-
databaseId
String databaseId- Returns:
- A database id that correspond this provider
- Since:
- 3.5.5
- Default:
""
-
affectData
boolean affectDataReturns 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
-