HillCheuang
HillCheuang
我也遇到了这个问题,若是double类型的0.00使用了@NumberForamt("#.##")导出excel后只会显示 **.**(只有一个小数点)
> left join on... and 后面有是一样的效果,你为什么需要 where 后面再加一次? 不一样啊,我举一个例子,目前数据权限的设计会导致左表有数据,右表的数据全是NULL 假设我们有两个表,一个是学生表(Students),另一个是成绩表(Scores),它们之间有一个共同的字段student_id(学生ID)。我们希望获取所有学生及其对应的成绩信息。 首先,我们可以使用LEFT JOIN来查询这些数据: ```mysql SELECT students.student_id, students.name, scores.score FROM students LEFT JOIN scores ON students.student_id = scores.student_id; ``` 以下是结果集合 | student_id...
> left join on... and 后面有是一样的效果,你为什么需要 where 后面再加一次? 根据上面的回答,在某些实际业务中,需要有数据权限的表是用于在 left join 语句上... 进行聚合数据...,若 你没有数据权限查看此数据,我的理解是总体过滤好一点 。
https://github.com/baomidou/mybatis-plus/issues/5186 可以看另外一个issue 有点类似于这个问题,不过这个是 只拼接了on 条件 没拼接where条件,对应代码里面 我猜测应该是mainTable被替换了
> 你这个需求是 INNER JOIN 的需求吧 你这么说好像确实 不过项目有些同学 喜欢用left join 我统一改掉了里面逻辑
租户的值和开关可以通过ThreadLocal【在拦截器注入相关值,开关可以通过注解控制】将值传递给线程上下文来进行判断,之前我是这么实现的
具体代码是用在公司项目不方便透露 不过可以提供大致的代码 1.关于只在查询的时候需要加字段 可以查看mybatis-plus的源码TenantLineInnerInterceptor类里面有beforeQuery、beforePrepare、processInsert、processUpdate 若只想要查询加可以继承这个TenantLineInnerInterceptor类 processUpdate、processInsert等方法可以空实现 ```java @Service public class TestInterceptor extends TenantLineInnerInterceptor { @Autowired private TenantLineHandlerImpl tenantLineHandler; @Autowired private TenantProperties tenantProperties; public CourtCodesInterceptor(TenantLineHandler tenantLineHandler) { super(tenantLineHandler); } /** *...
不过我推荐你自己阅读一下mybatis-plus 租户插件的源码 根据Spring 某些特性 是可以实现你的需求
我也遇到了这个问题 后续是怎么解决的