java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java @TableField注解用法

Java之@TableField注解的用法解析

作者:孙 悟 空

MyBatis-Plus的@TableField注解用于控制实体类字段与数据库表字段的映射关系,支持字段映射、忽略、插入和更新控制、自定义填充策略和类型转换等

Java @TableField注解用法

常见的作用和用法

1.字段映射与数据库字段名不一致

如果实体类字段名与数据库表字段名不一致,可以使用 @TableField 注解来指定对应的数据库字段名。

public class User {
    @TableField("user_name")  // 数据库表中字段名为 user_name
    private String username;
}

2.忽略某个字段

如果某个字段不需要参与数据库操作(例如不需要插入或更新),可以使用 @TableField(exist = false) 来标记。

public class User {
    @TableField(exist = false)  // 表示该字段不映射到数据库
    private String temporaryField;
}

3.指定字段是否参与插入、更新操作

@TableField 可以与 insertupdate 属性一起使用,指定该字段在插入或更新时是否参与操作。

public class User {
    @TableField(fill = FieldFill.INSERT)  // 仅在插入时填充
    private Date createTime;

    @TableField(fill = FieldFill.INSERT_UPDATE)  // 在插入和更新时都填充
    private Date updateTime;
}

4.自定义填充策略

MyBatis-Plus 提供了自动填充的功能,可以通过 @TableField 注解的 fill 属性指定某些字段在插入或更新时由 MyBatis-Plus 自动填充,例如时间戳、创建者等。

@TableField(fill = FieldFill.INSERT)  // 在插入时自动填充
private Date createTime;

5.设置数据库字段的类型

@TableField 注解还可以设置数据库字段的类型,例如 typeHandler 属性可以指定自定义的类型处理器,用于特定的字段类型转换。

@TableField(typeHandler = MyCustomTypeHandler.class)
private String customField;

常用属性

示例

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import java.util.Date;

@TableName("user")
public class User {

    private Long id;
    
    @TableField("user_name") // 映射数据库中的 "user_name" 字段
    private String username;
    
    @TableField(exist = false) // 不映射数据库中的字段
    private String temporaryField;
    
    @TableField(fill = FieldFill.INSERT) // 在插入时填充
    private Date createTime;
    
    @TableField(fill = FieldFill.INSERT_UPDATE) // 在插入和更新时填充
    private Date updateTime;

    // Getter and Setter methods
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文