1

代码报错总结

java.lang.IllegalStateException

详细log

Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'nursingProjectPlanController' method
com.zzyl.nursing.controller.NursingProjectPlanController#add(NursingProjectPlan)
to {POST [/nursing/plan]}: There is already 'nursingPlanController' bean method

原因

代码

//NursingProjectPlanController.java

/**
 * 护理计划和项目关联Controller
 * 
 * @author ruoyi
 * @date 2025-02-19
 */
@RestController
@RequestMapping("/nursing/plan")
public class NursingProjectPlanController extends BaseController
{
//NursingProjectPlan.java
@RestController
@RequestMapping("/nursing/plan")
public class NursingPlanController extends BaseController
{
    @Autowired
    private INursingPlanService nursingPlanService;

    /**

两个控制类存在相同的路径映射

Mybatis映射表中不存在的字段

rg.springframework.jdbc.BadSqlGrammarException: 
### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Unknown column 'params' in 'field list'
### The error may exist in com/zzyl/nursing/mapper/NursingProjectMapper.java (best guess)
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT id,name,order_no,unit,price,image,nursing_requirement,status,create_by,create_time,update_by,update_time,remark,params FROM nursing_project WHERE id=?
### Cause: java.sql.SQLSyntaxErrorException: Unknown column 'params' in 'field list'
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column 'params' in 'field list'

修改

使用 @TableField(exist = false) 注解
在 BaseEntity.java 中,为 params 字段添加 @TableField(exist = false) 注解,以明确告诉 MyBatis 这个字段不是数据库表中的列。

pom警告

'parent.relativePath' of POM com.eatfirewood:webdemoproject:1.0-SNAPSHOT (D:\code\web-demo\webtest\pom.xml) points at com.eatfirewood:webdemoproject instead of org.springframework.boot:spring-boot-starter-parent, please verify your project structure

修改

在parent标签中加上父pom路径<relativePath>../pom.xml</relativePath> <!-- 指向父POM的位置 -->

依赖注入失败

检查导包是否正确

比如自定义类和spring security包中的tokenService同名,导错
import com.zzyl.framework.web.service.TokenService;
import org.springframework.security.core.token.TokenService;

是否多用Autowired加入了不需要的依赖

xxxMapper扫描不到

原因

mapper包不在主类扫描路径下

解决方法

  1. 移到到主类包路径
  2. 在配置类中配置MapperScan("com.**.mapper")
    可以不用和主类在同一个package下

你想吃柴吗
1 声望1 粉丝