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;