MyBatis-Plus中的@TableId,@TableField注解详解

@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;
}
  • 12
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值