为了账号安全,请及时绑定邮箱和手机立即绑定

MyBatis-Plus进阶

难度高级
时长 2小时10分
学习人数
综合评分9.77
28人评价 查看评价
10.0 内容实用
9.4 简洁易懂
9.9 逻辑清晰

讲师回答 / 老猿
你使用的选装件是怎么配置的,我怀疑你选装件InsertBatchSomeColumn那配置的可能有问题,是不是很多字段都被你排除了?

讲师回答 / 老猿
你好,对于你的提问,我之前的回答,所问非所答了,关于流式查询,mp应该是没有特殊的支持。但是mybatis是支持的,mybatis中可以使用Cursor,进行流式查询,具体方法你可以查阅网上相关文章。

已采纳回答 / 老猿
       同学,经过我验证,开启二级缓存后,MP的baseMapper中提供的一系列Select方法不能命中二级缓存,只有自定义的方法才能命中二级缓存。       MP官方的建议是:“我们建议缓存放到 service 层,你可以自定义自己的 BaseServiceImpl 重写注解父类方法,继承自己的实现。”

讲师回答 / 老猿
PerformanceInterceptor在3.2.0被移除了,如果想进行性能分析,用第三方的,官方这样写的“该插件 3.2.0 以上版本移除推荐使用第三方扩展 执行 SQL 分析打印 功能”,我课程中也讲第三方扩展执行SQL分析打印功能了。

已采纳回答 / 老猿
嗯,是的,需要对源码有一定了解,这个hasSetter()方法,是MetaObject类的方法,它是Mybatis提供的操作对象的元数据信息的工具类。

讲师回答 / 老猿
        这个是idea的验证,他认为你只在Mapper接口中有方法,没有在xml中写对应的sql语句,你可以在file->setting->Editor->Inspections->然后在搜索框中搜索Mybatis,在搜索的结果中,修改相应项的级别就可以了。

已采纳回答 / 老猿
你好,我使用mysql5.7做实验,进行级联删除策略设置,例如我删除一个角色表中的数据,持有该角色的用户表的用户也跟着级联删除或者设置为set null,并且持有该角色的用户都是2条,两种不同策略下的执行delete角色操作,影响的row都显示为1,没出现你说的情况,请问你是使用什么数据库的什么版本,怎样设置,怎么操作的出现了上述情况?

讲师回答 / 老猿
插入的时候确实没有,你有两个办法,方法一:insert时自己在实体上把逻辑删除字段set一下,设置为逻辑未删除。方法二:在数据库表中,为逻辑删除标识设置默认值。

讲师回答 / 老猿
        同学,不要搞混概念啊,我的课程只是一个例子,用manager_id列作为TenantId(区分不同租户的字段)了,TenantId应该是你动态获取设置的。有的TenantId可能是当前登录人的机构id或者其他的字段。一般是没有拿当前登录人的id作为TenantId,建议你看看多租户的信息,据我了解目前MP只支持单字段的TenantId。

已采纳回答 / 老猿
可以实现,给你举个例子:<...code...>

已采纳回答 / 老猿
       设置逻辑删除后,使用BaseMapper中的deleteById只是会将标识字段更新为逻辑已删除,不会更新其他字段。如果想在逻辑删除时更新修改时间,可以参考我的课程的8-3节,选装件LogicDeleteByIdWithFill,如果你配置了update时自动填充修改时间,这个选装件可以解决你的问题。

已采纳回答 / 老猿
不太理解你为什么要这么做,你把@TableId设置到UserID上,主键策略设置为
type = IdType.INPUT 该类型主键表示新增时由你自己插入主键
课程须知
学习本课程前需要具备一定的MyBatis-Plus基础,并熟悉Lambda表达式和SpringBoot。建议先学习《MyBatis-Plus入门》课程,链接在此:https://www.imooc.com/learn/1130。
老师告诉你能学到什么?
1、掌握MP逻辑删除实现 2、掌握MP自动填充实现 3、掌握MP乐观锁实现 4、掌握MP性能分析 5、掌握MP多租户实现 6、掌握MP动态表 7、掌握MP的SQL注入器

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消