注解

大约 2 分钟 约 626 字

# POJO 相关注解

# @Table

@Table 注解用在 POJO 上,用于数据库表名和 POJO 名称不一致的情况

例如表名为tb_user, POJO 为User,则添加@Table(name = "tb_user")注解,将表tb_userUser对应


 










@Data
@Table(name = "tb_user")
public class User  {
    private Integer id ;

    private Integer age ;

    private String name ;

    private Date createDate ;
}
1
2
3
4
5
6
7
8
9
10
11

# @AutoID, AssignID, SeqID

用于在 POJO 中指定数据库主键类型

注解 说明
@AutoID 作用于属性字段或者 getter 方法,告诉 beetlsql,这是自增主键,对应于数据自增长
@AssignID 作用于属性字段或者 getter 方法,告诉 beetlsql,这是程序指定主键
@SeqID 作用于 getter 方法,告诉 beetlsql,这是序列主键


 









@Data
public class User  {
    @AutoID // 指明表的 id 列是自增
    private Integer id ;

    private Integer age ;

    private String name ;

    private Date createDate ;
}
1
2
3
4
5
6
7
8
9
10
11

@AssignID代码设定主键可以传入 id 的生成策略以自动生成序列

beetl 默认提供了 snowflake 算法,一个用于分布式环境的 id 生成器 (opens new window)

 




@AssignID("simple")
public Long getId() {
    return id;
}
1
2
3
4

simple 是 beetlsql 提供的一个默认的 snowflake 实现,你可以通过 sqlManager 自己注册 id 生成器

 






 




sqlManager.addIdAutonGen("uuid2", new IDAutoGen(){
    @Override
    public Object nextID(String params) {
        return "hi"+new Random().nextInt(10000);
    }
});

@AssignID("uuid2")
public Long getId() {
    return id;
}
1
2
3
4
5
6
7
8
9
10
11

# @Column

通常数据库列名和实体类对应关系已经由 NameConversion 转化好了,如果你有特殊的命名需求,可以使用此注解






 







@Data
public class User  {
    @AutoID // 指明表的 id 列是自增
    private Integer id ;

    @Colum("my_age")
    private Integer age ;

    private String name ;

    private Date createDate ;
}
1
2
3
4
5
6
7
8
9
10
11
12

使用@Colum("my_age")age字段可以对应到 user 数据表中的my_age

# Mapper 相关注解

# @SqlResource

@SqlResource注解在 Mapper 上,指明 sql 片段所在的文件,如没有使用此注解,则会默认通过泛型类来查找,规则是泛型类名的首字母小写作为文件名

 





@SqlResource("myUser")
public interface UserMapper extends BaseMapper<User> {
      
     List<User> selectByName(String name);
}
1
2
3
4
5

如果未使用@SqlResource则去resources/sql/下找user.md

使用@SqlResource("myUser")后则去resources/sql/下找myUser.md

# @SpringData

@SpringData模仿了 Spring Data 中通过方法名解析出 sql 语句的功能,比如 findById,则表示根据 id 属性查询。findByNameAndAgeOrderByIdDesc,则表示根据 name 和 age 属性查询,且输出结果按照 Id 降序排序。

要了解 BeetlSQL3 支持的所有 Spring Data 关键字,可以查看 SpringDataBuilder (opens new window) 类,或参考 Spring Data 文档 (opens new window)

上次编辑于: 2022年11月25日 13:03
贡献者: orange