当前位置: 首页 > news >正文

新疆维吾尔自治区网站建设_网站建设公司_API接口_seo优化

中山网站seo,专业做甜点的网站,微信商城开通多少钱,在线制作个人网站文章目录 前言问题回溯排查过程总结 前言 报错堆栈信息如下#xff0c;基本是mybatis-plus源码中的一些东西#xff1a; com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: java.lang.Object Not Found TableInfoCache.at com.baomidou.mybatisplus.core.to… 文章目录 前言问题回溯排查过程总结 前言 报错堆栈信息如下基本是mybatis-plus源码中的一些东西 com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: java.lang.Object Not Found TableInfoCache.at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:49)at com.baomidou.mybatisplus.core.toolkit.Assert.isTrue(Assert.java:38)at com.baomidou.mybatisplus.core.toolkit.Assert.notNull(Assert.java:72)at com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils.currentSessionFactory(GlobalConfigUtils.java:54)at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.sqlSessionFactory(SqlHelper.java:71)at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.executeBatch(SqlHelper.java:161)at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.executeBatch(SqlHelper.java:207)at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.executeBatch(ServiceImpl.java:239)at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.saveBatch(ServiceImpl.java:135)at com.baomidou.mybatisplus.extension.service.IService.saveBatch(IService.java:73) 我这里的问题主要是调用单个插入数据是能插入成功的。调用批量时就会报错。 网上有些朋友说是因为实体定义表名之类的问题。这个肯定不是我当前遇到的否则单个插入数据也会报错。而且报错信息也会有所不同。 问题回溯 报错的地方是全局配置类中获取表信息的时候取了个空 可以看到此处的问题传进来的clazz 居然成了 Object类型的。这就是问题的根本原因压根没有一个表能对应上Object。 那么这个Object 是从哪来的呢 排查过程 从堆栈信息入手向前找看看这个clazz 是谁传过来的。 终于在源码中找到了。在mybatis-plus的service实现类中 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl批量方法 再继续查找这是当前实现类的属性值应该是在对象初始化时就赋值了。 这里是获取了父类的范型类型看到这里大概知道这个错误的原因了。就是这个类型获取到的是Object类型导致了后来的错误。 public static Class? getSuperClassGenericType(final Class? clazz, final int index) {Type genType clazz.getGenericSuperclass();if (!(genType instanceof ParameterizedType)) {logger.warn(String.format(Warn: %ss superclass not ParameterizedType, clazz.getSimpleName()));return Object.class;}Type[] params ((ParameterizedType) genType).getActualTypeArguments();if (index params.length || index 0) {logger.warn(String.format(Warn: Index: %s, Size of %ss Parameterized Type: %s ., index,clazz.getSimpleName(), params.length));return Object.class;}if (!(params[index] instanceof Class)) {logger.warn(String.format(Warn: %s not set the actual class on superclass generic parameter,clazz.getSimpleName()));return Object.class;}return (Class?) params[index];}一般来说我们在写业务层时会这样写 public class UserService extends ServiceImplUserMapper, User { ... }然后使用这个UserService就没有这个问题。 但是我现在这个会出这个问题是因为在继承关系中多加了一层 我目前使用的类可以说是又继承了 UserService,最关键的是UserService 并没有范型类型。因此直接返回了Object.class类型。 总结 在增加了继承关系的写法中无法使用serviceImpl的一些方法。但是调用mapper的方法是可以的。 这也就是为什么我的批量操作报错单个插入却是可以成功的原因。 然后就是写这个层级结构时可以将数据库相关的内容全部写在 ServiceImpl 的直接子类中。其他地方再去调用。
http://www.lebaoying.cn/news/5835.html

相关文章:

  • 什么网站做调查能赚钱吗西部数码网站助手
  • 国外优秀app设计网站wordpress转移服务器后不能访问
  • 秦皇岛 网站制作搜索风云榜百度
  • 帮别人建设网站需要什么资质网站网络营销推广
  • 动物网站建设策划书腾讯企业邮箱入口登陆
  • 大学做网站有哪些计算机专业毕业设计怎么做
  • 小规模网站开发税率二级目录做网站
  • 四川做网站抖音号出售网站
  • 大型集团网站建设dw网站制作模板
  • 佛山企业制作网站app可以查的内容
  • 企业网站建设与营运计划书oa系统费用报销流程
  • 国内做网站的公司求职设计师的个人简历模板
  • 哪里有做网站的平台wordpress路径增加discuz
  • 福田公司网站建设企业年金是什么?缴费比例是多少?
  • 有了域名空间服务器怎么做网站济宁做网站有哪几家
  • 网站建设技术 论坛网站建设公司知名
  • 苏州网站制作聚尚网络网站开发实战视频教程
  • 智能营销型网站阆中市建设局网站首页
  • 网站建设推广什么意思做房地产用什么网站好
  • 网络营销推广方案策划书百度手机网站优化指南
  • 建设vip网站相关视频智能家居网站模板
  • 网站要怎么做的广州企业开办一网通
  • 佛山网站设计微信网站小游戏
  • wordpress学校网站关键词优化流程
  • 郑州哪有做网站的盘县做会计兼职的网站
  • 摄影创意网站培训网页设计吗
  • 北京智能网站建设哪里好建设厅执业资格注册中心网站
  • 大连专业手机自适应网站建设维护广告设计制作公司经营范围
  • 使用wordpress搭建手机网站搜索引擎优化实验报告
  • 成都网站seo报价齐河县城乡建设局官方网站