@Segment 注解
用来标记在接口方法上,定义一个可复用的 SQL 片段。方法名即为片段名称,在其他 SQL 中通过 @{macro,片段名} 规则引用。
示例:用 SQL 片段复用列列表
@SimpleMapper
public interface UserMapper {
// 方法名 user_do_allColumns 即为 SQL 片段名称
@Segment("user_uuid, user_name, login_name, login_password, email, seq, register_time")
void user_do_allColumns();
// 也支持字符串数组,会以空格连接
@Segment({"user_uuid, user_name, login_name,",
"login_password, email, seq, register_time"})
void user_do_allColumns2();
// 通过 @{macro,user_do_allColumns} 引用上面定义的 SQL 片段
@Insert({ //
"insert into user_info (@{macro,user_do_allColumns})", //
"values (#{userUuid}, #{name}, #{loginName}, #{loginPassword}, #{email}, #{seq}, #{registerTime})" })
int createUser(UserInfo tbUser);
}
提示
@Segment 标注的方法返回类型通常为 void,该方法不会被实际调用,仅作为 SQL 片段的载体。
属性清单
| 属性名 | 描述 |
|---|---|
| value | 必选 定义的 SQL 片段内容(支持字符串数组,以空格连接)。 |