public class MyMetaObjectHandler implements MetaObjectHandler
以上代码不执行 没有进入方法 已写配置文件MybatisPlusConfig(已执行)导致自动填充时间字段为null
mymetaobjecthandler没有进入
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
22条回答 默认 最新
专家-皆知 2024-09-13 10:01关注获得0.15元问题酬金 参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。
看起来你遇到的问题是在MyBatis Plus中,自定义的
MetaObjectHandler实现类MyMetaObjectHandler没有按预期工作,导致自动填充时间字段为null。这通常是因为配置不正确或者实现类没有被正确注册。为了解决这个问题,请确保你已经按照以下步骤正确配置和注册了你的
MetaObjectHandler实现类:-
确保
MyMetaObjectHandler类实现了MetaObjectHandler接口,并且实现了必要的方法,如insertFill和updateFill。 -
在Spring配置类中注册
MyMetaObjectHandler。确保你的配置类中包含了MybatisPlusConfig,并且在其中注册了MyMetaObjectHandler。
下面是一个示例配置类,展示如何在Spring Boot中注册
MetaObjectHandler:import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.baomidou.mybatisplus.extension.handlers.MetaObjectHandler; @Configuration public class MybatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); return interceptor; } @Bean public MetaObjectHandler metaObjectHandler() { return new MyMetaObjectHandler(); } }- 确保
MyMetaObjectHandler中的insertFill和updateFill方法正确实现。这些方法应该根据你的业务需求来填充字段。下面是一个简单的示例:
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.time.LocalDateTime; @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); } @Override public void updateFill(MetaObject metaObject) { this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); } }-
检查Spring Boot的自动配置。确保没有其他的配置覆盖了你的
MyMetaObjectHandler。 -
启动应用并检查日志。如果
MyMetaObjectHandler中的代码没有执行,检查Spring Boot的启动日志,看看是否有任何相关的错误或警告信息。
通过以上步骤,你应该能够解决
MyMetaObjectHandler没有执行的问题。如果问题仍然存在,请提供更多的信息,比如具体的日志输出或错误信息,以便进一步分析。评论 打赏 举报解决 1无用-