Skip to content

Commit 916fc12

Browse files
committed
feat: 通过全局配置指定默认枚举类型的类型转换器
1 parent 86f59c0 commit 916fc12

5 files changed

Lines changed: 16 additions & 21 deletions

File tree

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,34 @@
11
package io.github.talelin.latticy.common.enumeration;
22

3-
import com.baomidou.mybatisplus.annotation.EnumValue;
3+
import com.baomidou.mybatisplus.core.enums.IEnum;
44

55
/**
66
* @author colorful@TaleLin
77
*/
8-
public enum GroupLevelEnum {
8+
public enum GroupLevelEnum implements IEnum<Integer> {
99
/**
1010
* 超级管理员
1111
*/
12-
ROOT(1,"root"),
12+
ROOT(1),
1313
/**
1414
* 游客
1515
*/
16-
GUEST(2,"guest"),
16+
GUEST(2),
1717
/**
1818
* 普通用户
1919
*/
20-
USER(3,"user")
20+
USER(3)
2121
;
2222

23-
@EnumValue
2423
private Integer value;
2524

26-
private String description;
27-
28-
GroupLevelEnum(Integer value , String description) {
25+
GroupLevelEnum(Integer value) {
2926
this.value = value;
30-
this.description = description;
3127
}
3228

29+
@Override
3330
public Integer getValue() {
3431
return value;
3532
}
3633

37-
public String getDescription() {
38-
return description;
39-
}
4034
}

src/main/java/io/github/talelin/latticy/model/GroupDO.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
@Builder
1919
@NoArgsConstructor
2020
@AllArgsConstructor
21-
@TableName(value = "lin_group", autoResultMap = true)
21+
@TableName(value = "lin_group")
2222
@EqualsAndHashCode(callSuper = true)
2323
public class GroupDO extends BaseModel implements Serializable {
2424

@@ -37,8 +37,7 @@ public class GroupDO extends BaseModel implements Serializable {
3737
/**
3838
* 分组级别(root、guest、user,其中 root、guest 分组只能存在一个)
3939
*/
40-
@TableField(value = "`level`", typeHandler = MybatisEnumTypeHandler.class)
41-
@EnumValue
40+
@TableField(value = "`level`")
4241
private GroupLevelEnum level;
4342

4443
}

src/main/resources/application.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ mybatis-plus:
1818
configuration:
1919
# 开启下划线转驼峰
2020
map-underscore-to-camel-case: true
21+
# 指定默认枚举类型的类型转换器
22+
default-enum-type-handler: com.baomidou.mybatisplus.extension.handlers.MybatisEnumTypeHandler
2123
global-config:
2224
# 开启/关闭 banner 打印
2325
banner: false

src/main/resources/schema.sql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,11 @@ CREATE TABLE lin_group
7171
(
7272
id int(10) unsigned NOT NULL AUTO_INCREMENT,
7373
name varchar(60) NOT NULL COMMENT '分组名称,例如:搬砖者',
74-
info varchar(255) DEFAULT NULL COMMENT '分组信息:例如:搬砖的人',
75-
level smallint(1) NOT NULL DEFAULT 3 COMMENT '分组级别 1:root 2:guest 3:user root(root、guest分组只能存在一个)',
74+
info varchar(255) DEFAULT NULL COMMENT '分组信息:例如:搬砖的人',
75+
level tinyint(2) NOT NULL DEFAULT 3 COMMENT '分组级别 1:root 2:guest 3:user root(root、guest分组只能存在一个)',
7676
create_time datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
7777
update_time datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
78-
delete_time datetime(3) DEFAULT NULL,
78+
delete_time datetime(3) DEFAULT NULL,
7979
PRIMARY KEY (id),
8080
UNIQUE KEY name_del (name, delete_time)
8181
) ENGINE = InnoDB

src/test/resources/h2-test.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,10 @@ CREATE TABLE lin_group
7575
id int(10) unsigned NOT NULL AUTO_INCREMENT,
7676
name varchar(60) NOT NULL COMMENT '分组名称,例如:搬砖者',
7777
info varchar(255) DEFAULT NULL COMMENT '分组信息:例如:搬砖的人',
78-
level smallint(1) NOT NULL DEFAULT 3 COMMENT '分组级别 1:root 2:guest 3:user root(root、guest分组只能存在一个)',
78+
level tinyint(2) NOT NULL DEFAULT 3 COMMENT '分组级别 1:root 2:guest 3:user root(root、guest分组只能存在一个)',
7979
create_time datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
8080
update_time datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
81-
delete_time datetime(3) DEFAULT NULL,
81+
delete_time datetime(3) DEFAULT NULL,
8282
PRIMARY KEY (id),
8383
UNIQUE KEY name_del (name, delete_time)
8484
) ENGINE = InnoDB

0 commit comments

Comments
 (0)