Skip to content

Dict 数据字典

实现对字典类型的字段的处理,并根据当前语言环境(简体中文/繁体中文/英文/日语等)输出相应国际化语言内容。

添加依赖

xml
<parent>
	<groupId>com.hisense.pangea</groupId>
	<artifactId>pangea-common-dict</artifactId>
	<!--该处使用当前最新版本号-->
	<version>${pangea.version}</version>
</parent>

注解讲解

java
/**
 * 专门用于数据字典中的key转value的自定义注解
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Dict {

    /**
     * 字典项:dataSource
     */
    @NonNull
    String value();

    /**
     * 方法描述:这是返回后Put到josn中的文本key值
     *
     * @return 返回类型: String
     */
    String dictText() default "";
}

规则组特性

  • @Dict 应用在实体类的字段上,表示当前字段是字典类,保存字典类的key值。
  • value 表示字典的类别值,比如“性别:男、女”,这里“性别”是类别值。
  • dictText 表示字典类的value值的字段名,这个字段在反馈到前端时是新增的,默认是 字段名+“_dictText”。
  • 使用注解时,需要保证字典类型中已经存在对应的数据类型,如果未存在对应的数据类型,可以在字典管理中进行添加。

字典导出和导入

  1. 导出:支持字典类型和类型名称条件查询后的导出和全量导出。
  2. 导入:建议不要在上传文件中直接修改数据,可在页面进行数据修改后再进行导入和导出。

快速上手

  1. 实体类Person增加数据字典:

    • 实体类Person要继承实体基类BaseEntity
    • 在使用数据字典的属性上加上注解@Dict,具体使用方法见下方两个示例:
  2. 示例一:

  • 注解适用方式
java
public class Person extends BaseEntity{
    
    @Dict("sex")
    private String mySex;
}
  • 发送到前端的Json内容:
{
    "mySex":"male",
    "mySex_dictTex":"男" 
}
  1. 示例二:
  • 注解使用方式
java
public class Person extends BaseEntity {
    
    @Dict(value="sex",dictText="sexName")
    private String mySex;
}
  • 发送到前端的Json内容:
{
    "mySex":"male",
    "sexName":"男"
}

提示

数据字典支持多语言,可以在前端UI中配置,尽量使用第二种示例编写。