mybatis plus使用@tableid
1. @tableid
1.1 @tableid 可选类型
不添加注解时,默认使用id_worker(3)
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);
}1.2 @tableid(value = “id”,type= idtype.auto)
使用条件:
id 类型可以是interger/long;
数据库主键id,mysql必须设置自增主键,postgresql必须设置自增序列(例如:主键类型 serial4),才能够使用此注解。
1.3 @tableid(value = “id”,type= idtype.id_worker)
使用条件:
id 类型必须是long;
因为id_worker 生成的snowflakeid 是19位的全局id。
2. 非主键字段添加@tableid
如果一张表只是一个关联表,非主表,只保存了主表的id。但任然需要通过这个字段对关联表进行crud。
此时只需要在关联表的该字段上加@tableid ,即可使用 mybatis-plus mapper自带的方法;
import com.baomidou.mybatisplus.annotation.tableid;
import com.baomidou.mybatisplus.annotation.tablename;
import lombok.data;
import java.util.date;
@data
@tablename("fbr_basic_info")
public class fbrbasicinfoentity {
@tableid
private integer fbrinfoid;
private string fbrtype;
private string fbrtypecode;
}使用示例
查询
fbrbasicinfoentity basicinfoentity = fbrbasicinfomapper.selectbyid(fbrinfoid);
新增
fbrbasicinfoentity basicinfoentity = fbrassemble.trans(basicinfovo); fbrbasicinfomapper.insert(basicinfoentity);
修改
fbrbasicinfomapper.updatebyid(basicinfoentity);
亲测可用。
补充:mybatis-plus中的@tableid
mybatis-plus中的@tableid
简介
在 mybatis plus 中,@tableid 注解是用于标记实体类中的主键字段。它可以更方便地处理主键相关的操作,如自动填充主键值或识别主键字段。
用法
public class user {
@tableid(value = "user_id", type = idtype.auto)
private long userid;
...
}用户表
user,其中主键字段名为user_id,这个主键是数据库自增
value:指定数据库表中的主键字段名称。如果实体类的属性名与数据库表中的主键字段名相同,则可以省略此属性。type:指定主键生成策略。
主键生成策略
idtype.auto:表示主键自增,适用于数据库支持的自增主键,如mysql的auto_increment。idtype.assign_id:使用雪花算法(snowflake algorithm)生成主键。idtype.assign_uuid:生成一个不包含中划线的uuid作为主键。idtype.input:表示主键值需要手动输入或设置。
结束
到此这篇关于mybatis plus使用@tableid的文章就介绍到这了,更多相关mybatis plus使用@tableid内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论