@Target(value=FIELD) @Retention(value=RUNTIME) @Documented public @interface SelectKey
GenerationType.SELECT_KEY 策略,使用 SelectKeyGenerator 来实现。
实现 Mapper.xml 中如下的功能:
<selectKey keyProperty="id" keyColumn="id" resultType="java.lang.Long" order="BEFORE"> SELECT LAST_INSERT_ID() </selectKey>
SelectKeyGenerator| Modifier and Type | Required Element and Description |
|---|---|
String |
sql
使用自定义 select sql 语句生成字段的值
|
| Modifier and Type | Optional Element and Description |
|---|---|
String[] |
keyColumn
从
KeyGenerator 中获取到的返回值,和 keyProperty() 的映射关系。绝大多数情况下,如果
KeyGenerator 返回的的值是单一的列,则不需要设置 keyColumn
可以设置多个字段
可选属性
默认会从对应的 keyProperty 字段中获取"数据库字段名"
|
String[] |
keyProperty
从
KeyGenerator 中获取到的返回值,要设置到哪几个的属性字段中
可以设置多个字段
此字段仅用于 KeyGenerator 实现类中
如果 SequenceGenerator 注解不是放在 Field 上面,则需要设置。
如果 SequenceGenerator 注解放在 Field 上面则,取此字段的属性名。
|
SequenceGenerator.Order |
order
SelectKeyGenerator 在 INSERT 之前/之后执行 |
Class<?> |
resultType
|
org.apache.ibatis.mapping.StatementType |
statementType
自定义 select sql 语句类型
|
public abstract String sql
public abstract String[] keyProperty
KeyGenerator 中获取到的返回值,要设置到哪几个的属性字段中
KeyGenerator 实现类中
SequenceGenerator 注解不是放在 Field 上面,则需要设置。
SequenceGenerator 注解放在 Field 上面则,取此字段的属性名。
public abstract String[] keyColumn
KeyGenerator 中获取到的返回值,和 keyProperty() 的映射关系。绝大多数情况下,如果
KeyGenerator 返回的的值是单一的列,则不需要设置 keyColumn
keyProperty 字段中获取"数据库字段名"
public abstract Class<?> resultType
public abstract org.apache.ibatis.mapping.StatementType statementType
public abstract SequenceGenerator.Order order
SelectKeyGenerator 在 INSERT 之前/之后执行Copyright © 2018–2021. All rights reserved.