Unknown column ‘childs‘ in ‘field list‘

在使用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;

再次运行,欧克~~

猜你喜欢

转载自blog.csdn.net/qq_42224683/article/details/113758511