Unknown column ‘childs‘ in ‘field list‘
阿新 • • 發佈:2021-02-09
技術標籤:問題集springbootmybatisjavamysql
在使用mybatis-plus的過程中,遇到了如下的錯誤
### Cause: java.sql.SQLSyntaxErrorException: Unknown column 'childs' in 'field list'
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column 'childs' in 'field list'] with root cause
java.sql.SQLSyntaxErrorException: Unknown column 'childs' in 'field list'
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:536) ~[mysql-connector-java-6.0.6.jar:6.0.6]
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:513) ~[mysql-connector-java-6.0.6.jar:6.0.6]
at com.mysql.cj.jdbc.exceptions. SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:115) ~[mysql-connector-java-6.0.6.jar:6.0.6]
at com.mysql.cj.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:1983) ~[mysql-connector-java-6.0.6.jar:6.0.6]
at com.mysql.cj.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1826 ) ~[mysql-connector-java-6.0.6.jar:6.0.6]
我的資料字典如下
Java程式碼如下
@TableName(value = "area")
public class Area {
@TableId
private long id;
private String areaName;// 區域名稱
private int level;// 層級
private List<Area> childs;
private Area parent;
其中的childs欄位和parent欄位在資料字典中不存在,因此映射出現了錯誤
我的解決辦法是:忽略掉這倆個欄位
mybatis-plus忽略對映欄位
@TableField(exist = false):表示該屬性不為資料庫表字段,但又是必須使用的。
@TableField(exist = true):表示該屬性為資料庫表字段。
於是乎,Java程式碼如下
@TableName(value = "area")
public class Area {
@TableId
private long id;
@TableField(exist = true)
private String areaName;// 區域名稱
private int level;// 層級
@TableField(exist = false)
private List<Area> childs;
@TableField(exist = false)
private Area parent;
再次執行,歐克~~