1. 程式人生 > 其它 >Unknown column ‘childs‘ in ‘field list‘

Unknown column ‘childs‘ in ‘field list‘

技術標籤:問題集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;

再次執行,歐克~~