框架为什么不用@Dict之类的自动获取字典数据

Blade 已结 2 162
gtfhao
gtfhao 2025-12-25 10:17

一、该问题的重现步骤是什么?

1. 框架为什么不用@Dict之类的自动获取字典数据

2. 现在全是在Wrapper里自己转换

3.缺点自定义分页查询里直接返回的VO没有用到Wrapper


二、你期待的结果是什么?实际看到的又是什么?

期待:能像别的框架一样,可以支持注解的方式直接翻译字典

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

企业版4.7.0

四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

2条回答
  •  gtfhao
    gtfhao (楼主)
    2025-12-25 14:08

    也就是我要关联业务上其他表的数据,只需要在Wrapper里重写PageVO或者ListVO就行对吧?

    作者追问:2025-12-25 14:08

    wrapper主要还是针对缓存类、不怎么变动的数据进行的查询和赋值。

    如果涉及到join查询则不建议用wrapper解决,建议手写sql查询或者用mybatis-plus的join组件来实现联动查询。

    作者追问:2025-12-25 14:08

    比如处理字典、用户、部门、角色这类基本不变动的,可以通过他们的缓存类,在wrapper快速匹配赋值。

    如果是n个连表查询,就不适用wrapper了,还是需要写join条件来查询。查询返回结果后,剩下的字典、用户这类再用wrapper处理。

    回答: 2025-12-25 14:08

    比如列表查询需要关联其他业务表的数据,是否可以在Wrapper里SpringUtil.getBean,进下查询一下,这样是分页量数据的查询,而不是全量的查询,会不会更合适呢?

    作者追问:2025-12-25 14:08

    除非你做了缓存,或者本来join查询10秒,单独在wrapper新开局部查询只要1秒,有这种巨型提升的情况下可以,其他情况不推荐。

    不然每一次分页10条数据,就要有11次数据库查询,在高并发场景下数据库扛不住的,平白多了n倍压力。

    回答: 2025-12-25 14:08

    我想这样:在Wrapper里重写pageVO,这样一页的数据一个查询就搞定了,不在entityVO里每条数据都查一下,这样是否可行?比写关联sql查询要快的吧?代码生成出来,page分页不用改代码,直接Wrapper里加下业务查询就可以了?我这样设想的。

提交回复