Sharding-jdbc 提示:Missing the data source name: ‘m0‘

今天药忘吃喽~ 2023-10-10 12:18 98阅读 0赞

异常描述:

  1. ### Error updating database. Cause: java.lang.IllegalStateException: Missing the data source name: 'm0'
  2. ### The error may exist in com/zzg/mapper/OrderMapper.java (best guess)
  3. ### The error may involve com.zzg.mapper.OrderMapper.insert-Inline
  4. ### The error occurred while setting parameters
  5. ### Cause: java.lang.IllegalStateException: no table route info] with root cause
  6. java.lang.IllegalStateException: no table route info

异常造成原因:

  1. @RequestMapping(value = "/batchInsert", method = { RequestMethod.GET })
  2. public Object batchInsert() {
  3. for (int i = 0; i < 10; i++) {
  4. Order order = new Order();
  5. order.setPrice(new BigDecimal(Math.random()));
  6. order.setUserId(new Random().nextLong());
  7. order.setStatus("0");
  8. orderService.save(order);
  9. }
  10. return "批量新增成功";
  11. }

使用MyBatis-plus 新增Order 实体属性时,提示Missing the data source name: ‘m0’,造成原因是由于userId的属性值,我使用的是随机函数生成的Long 值进行填充,导致sharding-jdbc 路由引擎执行分析时与自己定义的数据库规则计算值异常导致输出了一个不存在的数据源。

调整后的插入功能代码:

  1. @RequestMapping(value = "/batchInsert", method = { RequestMethod.GET })
  2. public Object batchInsert() {
  3. for (int i = 0; i < 10; i++) {
  4. Order order = new Order();
  5. order.setPrice(new BigDecimal(Math.random()));
  6. order.setUserId(Long.valueOf("" + i));
  7. order.setStatus("0");
  8. orderService.save(order);
  9. }
  10. return "批量新增成功";
  11. }

发表评论

表情:
评论列表 (有 0 条评论,98人围观)

还没有评论,来说两句吧...

相关阅读