讲师回答 / 老猿
如果你的TenantId为null的话,不会进行过滤。你登录后,获取到company_id可以存储到session中或者其他该用户能获取到其他用户不能获取的地方。然后在多租户的getTenantId方法中取出来包装成Expression对象返回即可。这样就实现了登录查询是不过滤,其他方法过滤。
2020-03-21
讲师回答 / 老猿
按照我看到过的文章,说sql是从右向左解析的,能够排除最大量数据的条件应该放在最右面。你那句明显应该是user_id = ?这个条件过滤掉的数据最多。单单从这条语句来说,deleted=0放在最前面是对的。但是其他情况则不一定,我目前了解的mp,这个逻辑删除字段的位置还不能修改,你可以去MP官方群里咨询一下作者,看看能否解决。或者在github或gitee上提问。
2020-03-16
QueryWrapper<User> query =Wrappers.<User>query();
query.eq("name",val);
这里的name是数据库的字段名 还是实体类的属性
视频中您讲的是数据库的字段名
query.eq("name",val);
这里的name是数据库的字段名 还是实体类的属性
视频中您讲的是数据库的字段名
2020-03-16
讲师回答 / 老猿
按我目前的实践来看,使用了mp提供的参数中包含实体类的插入或更新方法,如果你实现了自动填充功能,就会触发MetaObjectHandler中的相应方法,你可以参考我视频里讲的,在MetaObjectHandler中的相应方法中,某些场景下如果不需要执行方法中的业务逻辑是如何忽略的。
2020-03-14
讲师回答 / 老猿
你用的MP是什么版本,在3.2.0以上已经移除性能分析插件,推荐使用第三方的,我在课程中也讲解了第三方的。 如果你还想用这个,那么你可以按照官方教程配置,教程地址:https://mybatis.plus/guide/performance-analysis-plugin.html,然后在在vm-options中输入-Dspring.profiles.active=你激活性能分析插件的环境,例如:-Dspring.profiles.active=test。如果仍然有问题,再反馈给我。
2020-03-13
讲师回答 / 老猿
是对所有表中有这两个字段,并且在实体类中的属性中设置了以下注解的表生效。
@TableField(fill = FieldFill.INSERT) //insert语句生效 或者 @TableField(fill = FieldFill.UPDATE) //update语句生效 或者 @TableF...
2020-03-06
讲师回答 / 老猿
原因是这样的,那个自动填充方法,对你操作的每个类型的实体的insert和update都会拦截的。有的需求自动填充的不一定是时间,可能自动填充的值需要调用一连串方法获取或者获取的时间开销比较大。这时候使用hasSetter方法,来判断该实体是否具有该属性,如果有再调用那些方法获取值,然后进行填充,没有就根本不调用,减小开销。
2020-03-02
讲师回答 / 老猿
有两种需求,你可能使用到它。一种是,我更新某个实体,不设置值的,我都想更新为null,而不是忽略。还有一种就是,你更新时要始终排除某个字段,防止被误更新上以及不想将该字段更新成null。
2020-02-21
讲师回答 / 老猿
你这个代码我下载下来了,我这调试起来,稍微有点费劲。我给你个思路,你看看行不行,如果不行我再帮你调试一下。 就是你不要把PaginationInterceptor注入到拦截器中,你可以像...
2020-02-10