一、该问题的重现步骤是什么?
1. 框架为什么不用@Dict之类的自动获取字典数据
2. 现在全是在Wrapper里自己转换
3.缺点自定义分页查询里直接返回的VO没有用到Wrapper
二、你期待的结果是什么?实际看到的又是什么?
期待:能像别的框架一样,可以支持注解的方式直接翻译字典
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
企业版4.7.0
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
也就是我要关联业务上其他表的数据,只需要在Wrapper里重写PageVO或者ListVO就行对吧?
wrapper主要还是针对缓存类、不怎么变动的数据进行的查询和赋值。
如果涉及到join查询则不建议用wrapper解决,建议手写sql查询或者用mybatis-plus的join组件来实现联动查询。
比如处理字典、用户、部门、角色这类基本不变动的,可以通过他们的缓存类,在wrapper快速匹配赋值。
如果是n个连表查询,就不适用wrapper了,还是需要写join条件来查询。查询返回结果后,剩下的字典、用户这类再用wrapper处理。
比如列表查询需要关联其他业务表的数据,是否可以在Wrapper里SpringUtil.getBean,进下查询一下,这样是分页量数据的查询,而不是全量的查询,会不会更合适呢?
除非你做了缓存,或者本来join查询10秒,单独在wrapper新开局部查询只要1秒,有这种巨型提升的情况下可以,其他情况不推荐。
不然每一次分页10条数据,就要有11次数据库查询,在高并发场景下数据库扛不住的,平白多了n倍压力。
我想这样:在Wrapper里重写pageVO,这样一页的数据一个查询就搞定了,不在entityVO里每条数据都查一下,这样是否可行?比写关联sql查询要快的吧?代码生成出来,page分页不用改代码,直接Wrapper里加下业务查询就可以了?我这样设想的。