一、代码示例
@Data
@TableName("STUDENT" )
@KeySequence("SEQ_STUDENT")
public class StudentEntity {
// 主键
@TableId(type = IdType.INPUT)
private Long id;
@TableField("STU_NAME")
private String stuName;
@TableField(exist = false)
private String startTime;
}
二、注释解析
上述代码用到的注释有如下作用
1、@Data
这个很常见,用在实体类上等于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解加起来。实际上我们使用时主要就是为了省去getter、setter的定义
2、@TableName(“表名”)
标识此实体类对应数据库哪张表
3、@KeySequence(“序列名称” )
Oracle没有自增主键,如果想要实现主键自增,需要先手动在数据库建一个序列,然后每次插入数据时从这个序列中取值,以实现自增功能
4、@TableId(类型)
@TableId用来标注这个字段是数据库主键,主键字段最好定义为Long类型。注解中type的类型有6种
值 | 描述 |
---|---|
AUTO | 数据库自增 |
NONE | MP set主键,雪花算法实现 |
INPUT | 需要手动赋值 |
ASSIGN_ID | MP分配ID,Long、Integer、String |
ASSIGN_UUID | 分配UUID,String |
5、@TableField(“数据库字段名”)
将数据库中字段和实体类中的字段匹配起来,一般用来下划线转驼峰命名
6、@TableField(exist = false)
如果实体类中定义了一个数据库表中没有的字段,那么使用此注解说明