SQLSyntaxErrorException: Unknown column ‘XXX‘ in ‘where clause‘

java.sql.SQLSyntaxErrorException: Unknown column 'XXX' in 'where clause'
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) ~[mysql-connector-java-8.0.20.jar:8.0.20]
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.20.jar:8.0.20]
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.20.ja
1234

这个错误是mysql的语法错误,XXX字段未识别(映射)到,原因可能是:

  • 实体类的字段、和数据库的字段名称没有对应起来导致的(实体类里是驼峰命名,数据库是下划线)。

  • 如果是写的xml,入参的@Param注解后取的别名与xml中的参数名称不一致。或@Param注解中的入参,在xml中作为一个参数条件,但是没有加#{xxx参数名称}导致的

  • 编写的SQL(xml)里边的字段取别名与实体类没有对应起来导致的。

//针对第二种问题eg:

	@Param("firstClassificationId")

//错误:
        <if test="firstClassificationId != null and firstClassificationId!=''">
            and first_classification_id = firstClassificationId
        if>
        
//正确:
		<if test="firstClassificationId != null and firstClassificationId!=''">
            and first_classification_id = #{firstClassificationId}
        if>
        

你可能感兴趣的:(SpringBoot学习,MySQL,mysql,java)