想获取v1.6.0及以前版本的使用说明的朋友,可以移步:springboot 数据转换 v1.6.0特色
v1.7特色
本次涉及三次升级:
- v1.7.0 添加了属性别名配置,可以在不修改数据库对应的字典名称的情况下,实现数据字典转换。
- v1.7.1 在1.7.0的基础上,添加了字典表全表查询逻辑,设置modelName=“-1”,即为全表查询。
- v1.7.2 更换了
stars-datachange
的mapper配置文件路径,mapper -> stars-mapper,目的:降低mapper配置文件扫描冲突。
1、 v1.7.0属性别名配置
1.1、DB场景
在@ChangeModelProperty( alias = "20000")
中,设置属性别名——alias,对应数据库中原有字典名称
从上图可以看到,1.7之前的版本,字典名称必须对应属性名称。在字典表已经成熟的情况下,再去修改字典名称为属性名称,可谓“鸡肋”。
1.7版本的到来,正是从“鸡肋”升级成了“鸡腿”。不需要修改现有字段表结构和数据,只需在属性注解上加上alias来对应字典名称,就完美解决数据转换问题了。
1.1.1、实现思路
1.1.1.1、 带有modelName的数据转换
(1)配置字典表名称和字段名
(2)设置modelName和属性别名
modelName对应父级数据的字典名称,这里自定义为100,默认为首字母小写的数据模型的模型名称。
(3)单元测试
1.1.1.2、 自定义数据转换
可以根据实际需求不使用modelName,实现字典表全部数据的数据转换。
(1)设置属性别名
字典表名称和字段名这个步骤就不用配置了,因为要自定义数据转换。
(2)重写数据字典逻辑
可根据现有字典表自己实现数据转换逻辑:
如:根据现有业务,去除父字典逻辑,查询所有数据字典。
添加自定义数据字典配置。
(3)单元测试
1.2、Enum场景
枚举别名映射的场景,可以用一个通用枚举,作为枚举字典。
(1)设置枚举字典和属性别名
(2)单元测试
2、 v1.7.1默认数据字典 全表查询逻辑
- 本次升级,添加了默认数据字典的全表查询逻辑。
- 之前的版本,默认数据字典 需要用key值,进行父字典下面数据字典的查询。无法跳过key值逻辑,进行字典表全表查询。
- 现在,可以通过设置
modelName="-1"
,来进行默认数据字典的全表查询了。 - 比起1.7.0,需手动实现全表查询的逻辑,1.7.1的到来,已经默认实现了全表查询,不用自定义数据字典的配置,就已实现全表查询。
实现思路
(1)配置字典表名称和字段名
全表查询的配置,只需要字典表名、字典名称、字典代码、字典值等配置即可。
(2)设置modelName为-1(必须) 和属性别名
这里,1.7.1版本,当modelName设置为"-1"时,系统才会默认它(key)为空,即——全表查询。
ps:modelName为其他值,那么还是老样子,key=modelName
(3)单元测试
单元测试前,把自定义数据字典的配置类,注释掉,才能看出1.7.1版本的功效。
3、 v1.7.2 mapper配置文件目录更换
- 为了确保stars-datachange的稳定性。
- 在1.7.2版本,绝定,对stars-datachange的mapper配置文件路径,进行更换。以防止,对使用者项目中mapper配置文件扫描时,丢失stars-datachange的mapper配置文件的问题。
- 届时,使用stars-datachange的DB源模式,需要更换项目中stars-datachange的mapper配置文件扫路径。如下图: