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

MyBatis-Plus进阶

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

讲师回答 / 老猿
是对所有表中有这两个字段,并且在实体类中的属性中设置了以下注解的表生效。
@TableField(fill = FieldFill.INSERT) //insert语句生效
或者
@TableField(fill = FieldFill.UPDATE) //update语句生效
或者
@TableF...

讲师回答 / 老猿
       原因是这样的,那个自动填充方法,对你操作的每个类型的实体的insert和update都会拦截的。有的需求自动填充的不一定是时间,可能自动填充的值需要调用一连串方法获取或者获取的时间开销比较大。这时候使用hasSetter方法,来判断该实体是否具有该属性,如果有再调用那些方法获取值,然后进行填充,没有就根本不调用,减小开销。

讲师回答 / 老猿
有两种需求,你可能使用到它。一种是,我更新某个实体,不设置值的,我都想更新为null,而不是忽略。还有一种就是,你更新时要始终排除某个字段,防止被误更新上以及不想将该字段更新成null。

讲师回答 / 老猿
同学,我自己试验了一下,我的正常。在父类中的属性,查询后,也会映射到对象中,我使用的MP版本是3.3.1.tmp。你使用的是什么版本?

讲师回答 / 老猿
同学你好,你的这类需求,我在视频 8-3 选装件LogicDeleteByIdWithFill中有讲解。你可以看看,如果还有疑问,再反馈给我。

讲师回答 / 老猿
我使用MP的版本是3.3.1.tmp。mysql数据库5.7。试验了一下自动填充,插入后不带毫秒数,没出现你这种情况。

讲师回答 / 老猿
在代码生成器中的StrategyConfig类中,有setTablePrefix方法,你试试看看能不能设置出表名前缀。例如:<...code...>

讲师回答 / 老猿
       你这个代码我下载下来了,我这调试起来,稍微有点费劲。我给你个思路,你看看行不行,如果不行我再帮你调试一下。        就是你不要把PaginationInterceptor注入到拦截器中,你可以像...

讲师回答 / 老猿
同学,你用的Mybatis-Plus是哪个版本?我也试试。

讲师回答 / 老猿
“但是要确认这条数据的影响范围,例如有关联数据也需要恢复”,打错字了,不好意思。

讲师回答 / 老猿
        我已经好多年没用过这种传统的springmvc的xml配置方式了。我试着说一下思路,然后你看看是否可行。首先编写一个实现ITableNameHandler的类,如果需要多个表实现动态表面,就编写多个实现...

讲师回答 / 老猿
       同学配置类有用啊,后面的课程中在配置类中配置了乐观锁插件,性能分析插件,sql注入器等等。你继续往下看就知道了。

讲师回答 / 老猿
目前仅从这些信息,我判断不出来错误原因,方便的话,把你的代码发到百度网盘或gitee或github上,链接给我,我帮你调试一下。

讲师回答 / 老猿
      可以自己写自定义方法查出来。你可以自己写基于xml或基于注解的查询方法,然后根据逻辑删除字段的值,查询被删除的数据。但是一般都没有这种需求。

讲师回答 / 老猿
你数据库中的主键类型是什么?
课程须知
学习本课程前需要具备一定的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
提交
取消