@TableId
作用:用于设置id的生成策略,即设置id是如何生成的
package com.baomidou.mybatisplus.annotation;
import lombok.Getter;
/**
* 生成ID类型枚举类
*
* @author hubin
* @since 2015-11-10
*/
@Getter
public enum IdType {
/**
* 数据库ID自增
*/
AUTO(0),
/**
* 该类型为未设置主键类型
*/
NONE(1),
/**
* 用户输入ID
* <p>该类型可以通过自己注册自动填充插件进行填充</p>
*/
INPUT(2),
/* 以下3种类型、只有当插入对象ID 为空,才自动填充。 */
/**
* 全局唯一ID (idWorker)
*/
ID_WORKER(3),
/**
* 全局唯一ID (UUID)
*/
UUID(4),
/**
* 字符串全局唯一ID (idWorker 的字符串表示)
*/
ID_WORKER_STR(5);
private final int key;
IdType(int key) {
this.key = key;
}
}
用法举例:
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("tb_user")
public class User {
@TableId(type = IdType.AUTO) //指定id类型为自增长
private Long id;
private String userName;
private String password;
private String name;
private Integer age;
private String email;
}
@TableField
在MP中通过@TableField注解可以指定字段的一些属性,常常解决的问题有两个:
1.对象中的属性名和表中的字段名不一致(非驼峰)
2.对象中的属性字段在表中不存在
用法举例:
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("tb_user")
public class User{
private Integer id;
private String userName;
@TableField(select = false)//不希望password出现在查询结果中
private String passWord;
private String name;
private Integer age;
@TableField(value = "email")//解决字段名不一致
private String mail;
@TableField(exist = false)//指明该属性在数据库表的字段中不存在
private String address;
}