java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > MybatisPlus @EnumValue注解

MybatisPlus中@EnumValue注解使用及应用场景

作者:小猿、

@EnumValue注解标记在枚举类型的字段上,表示该字段是枚举值在数据库中存储的实际值,这对于枚举的持久化是关键,确保枚举在数据库中的表示与Java枚举类的一致性,下面就来详细的介绍一下@EnumValue注解如何使用,感兴趣的可以了解一下

@EnumValue注解详细介绍

功能概述

主要用途

应用场景

示例代码及其解读

import com.baomidou.mybatisplus.annotation.EnumValue;

public enum Status {
    @EnumValue
    ACTIVE(1, "Active"),
    INACTIVE(0, "Inactive");

    private final int code;
    private final String description;

    Status(int code, String description) {
        this.code = code;
        this.description = description;
    }

    public int getCode() {
        return code;
    }

    public String getDescription() {
        return description;
    }

    public static Status fromCode(int code) {
        for (Status status : values()) {
            if (status.code == code) {
                return status;
            }
        }
        throw new IllegalArgumentException("Unknown code: " + code);
    }
}

详细解释

MybatisPlus配置

配置实体类

假设我们有一个名为 User 的实体类,其中一个字段使用了 Status 枚举类型。

实体类示例

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;

@Data
@TableName("user") // 指定数据库表名
public class User extends Model<User> {

    @TableId // 指定主键字段
    private Long id;

    @TableField("username")
    private String username;

    @TableField("status")
    private Status status; // 使用枚举类型字段

    // 其他字段和方法...
}

配置说明:

  1. @TableName

    • 用于指定数据库中的表名。这个注解是可选的,如果实体类名与表名相同,可以省略。
  2. @TableId

    • 标记主键字段。可以指定主键策略(如自增、UUID等),但这在使用 @EnumValue 时并不直接相关。
  3. @TableField

    • 用于指定数据库表中的字段名。默认情况下,字段名与数据库列名相同,但你可以通过这个注解来显式指定。
  4. Status status

    • 这是枚举类型字段。MyBatis-Plus 会根据 @EnumValue 注解来处理这个字段的数据库存储。

使用@EnumValue注解能有效管理枚举在数据库中的持久化,使得枚举类型的存储和读取更加一致和清晰。

到此这篇关于MybatisPlus中@EnumValue注解使用及应用场景的文章就介绍到这了,更多相关MybatisPlus @EnumValue注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

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