现象
今天一位同事找我看一个很奇怪的问题:
执行一个单表的查询语句,结果老是报字段类型不匹配的错误,错误日志如下:
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: Error attempting to get column 'user_name' from result set. Cause: java.sql.SQLDataException: Cannot convert string 'admin' to java.sql.Timestamp value
; Cannot convert string 'admin' to java.sql.Timestamp value; nested exception is java.sql.SQLDataException: Cannot convert string 'admin' to java.sql.Timestamp value] with root cause
com.mysql.cj.exceptions.DataConversionException: Cannot convert string 'admin' to java.sql.Timestamp value
at com.mysql.cj.result.AbstractDateTimeValueFactory.createFromBytes(AbstractDateTimeValueFactory.java:123) ~[mysql-connector-java-8.0.21.jar:8.0.21]
at com.mysql.cj.protocol.a.MysqlTextValueDecoder.decodeByteArray(MysqlTextValueDecoder.java:134) ~[mysql-connector-java-8.0.21.jar:8.0.21]
at com.mysql.cj.protocol.result.AbstractResultsetRow.decodeAndCreateReturnValue(AbstractResultsetRow.java:133) ~[mysql-connector-java-8.0.21.jar:8.0.21]
at com.mysql.cj.protocol.result.AbstractResultsetRow.getValueFromBytes(AbstractResultsetRow.java:241) ~[mysql-connector-java-8.0.21.jar:8.0.21]
实体文件:
@Builder
@Data
@Table(name = "sys_logininfor")
public class SysLogininfor implements Serializable
{
private static final long serialVersionUID = 1L;
@Id