Java Unknown column ‘xxx‘ in ‘field list‘问题3种情况解决(JPA、MyBatis、MyBatis-Plus)

85 篇文章 5 订阅

1 问题描述

Unknown column 'start_time' in 'field list'

2 问题分析

2.1 JPA

1、实体类属性没加@Column注解,但是Hibernate还是对该字段进行映射。

private Date startTime;

解决办法:在要忽略映射的字段上添加@Transient注解,Hibernate将不会对该字段进行映射。

@Transient
private Date startTime;

2.2 MyBatis

1、SQL中使用了${},将变量值解析成了列名。

解决办法:将${}改为#{}。 

2、由于表名是当做参数传入,导致表名不正确。

解决办法:

查看控制台打印SQL的语句,使表名正确即可。

2.3 MyBatis-Plus

1、实体类属性名包括大写英文字母缩写,同时添加了@TableField和@TableId注解,@TableField注解写明了但是@TableId注解没有写明字段名称,导致MyBatis-Plus按照实体类属性的驼峰式方式取得字段名称user_p_w_d。

@TableField("user_pwd")
@TableId
private String userPWD;

解决办法:

去掉@TableField注解,@TableField注解写明字段名称。

@TableId("user_pwd")
private String userPWD;
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值