MetaObjectHandler执行顺序
时间: 2024-01-10 11:05:02 浏览: 32
MetaObjectHandler是MyBatis框架中的一个拦截器,用于处理实体类的元对象信息。它的执行顺序如下:
1. 在执行SQL语句之前,MetaObjectHandler会优先于其他拦截器执行。
2. 如果在实体类中定义了包含@Version注解的字段,那么MetaObjectHandler会自动为这个字段赋值,用于乐观锁的实现。
3. 如果在实体类中定义了包含@TableField注解的字段,那么MetaObjectHandler会自动为这个字段赋值,用于自动填充创建时间、更新时间等字段的值。
4. 在执行SQL语句之后,MetaObjectHandler会作为最后一个拦截器执行。
总之,MetaObjectHandler的执行顺序是在其他拦截器之前和之后执行,用于处理实体类的元对象信息。
相关问题
MetaObjectHandler方法执行时间
MetaObjectHandler方法的执行时间是在数据库中插入数据或更新数据时触发的。具体来说,在调用插入数据或更新数据的操作之前,会先调用MetaObjectHandler中的对应方法,例如insertFill或updateFill方法。这些方法会在执行数据库操作之前自动设置相应字段的值,比如设置创建时间(gmtCreate)或修改时间(gmtModified)的值为当前时间。所以可以说,MetaObjectHandler方法的执行时间是在进行数据库操作之前。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [MetaObjectHandler的使用](https://blog.csdn.net/weixin_52731618/article/details/127657887)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [Mybatis-Plus3.2.0 MetaObjectHandler 无法进行公共字段全局填充](https://download.csdn.net/download/weixin_38569219/12744871)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
MetaobjectHandler
MetaObjectHandler是MyBatis Plus框架提供的一个接口,用于实现对实体类字段的自动填充功能。它定义了两个方法:insertFill和updateFill。当我们执行插入或更新操作时,MyBatis Plus会自动调用这两个方法来填充指定的字段。
在你提供的引用中,我们可以看到一个示例的自定义MetaObjectHandler实现类,名为MyMetaObjecthandler。这个类通过实现MetaObjectHandler接口,并重写insertFill和updateFill方法,来实现对"createTime"、"updateTime"、"createUser"和"updateUser"字段的自动填充。
在insertFill方法中,该自定义处理器会在插入操作时自动为"createTime"和"updateTime"字段设置当前的LocalDateTime对象,为"createUser"和"updateUser"字段设置固定值1。
在updateFill方法中,该自定义处理器会在更新操作时自动为"updateTime"字段设置当前的LocalDateTime对象,为"updateUser"字段设置固定值1。
通过实现MetaObjectHandler接口并重写这两个方法,我们可以方便地实现对公共字段的自动填充。这样我们就不需要在每次插入或更新操作时都手动设置这些字段的值,提高了开发效率。
总结起来,MetaObjectHandler接口是MyBatis Plus框架提供的一个扩展接口,用于实现对实体类字段的默认值填充。我们可以自定义一个实现该接口的类,并重写insertFill和updateFill方法来实现字段的自动填充。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)