在使用MyBatisPlus的selectById()方法查询数据时,报出了一个错误:
java.sql.SQLSyntaxErrorException Create breakpoint Unknown column 'id'in 'field list'
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)~[mysql-connector-java-8.0.22.jar:8.0.22]
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)~[mysql-connector-java-8.0.22.jar:8.0.22]
看了一下数据库表中也没有id这个字段,表对应的实体类也没有这个字段。
那这是什么原因呢?
原来是因为MyBatisPlus查询时,默认的主键就是id,如果我们数据库中的主键的名字不叫id的话,就会报上面的那个错误。
那怎么解决呢?也很简单。在MyBatisPlus的官方文档中,找到了下面这个注解:
MyBatisPlus默认,会去数据库中查找叫id的主键。我们需要使用
@TableId
这个注解,给MyBatisPlus指个路,告诉它,这个才是主键:
@TableId("company_id")
private String companyId;