使用 Mapper 读取数据库数据时,因时间字段为 null, Java设置该字段为 Instant, 在Mapper转为 List时出了错误,如果使用 List则不抛异常。
但实际情况我们还是希望使用原数据对象,导致抛出下面错误
Error attempting to get column 'create_time' from result set. Cause: java.sql.SQLException: Zero date value prohibited
; Zero date value prohibited; nested exception is java.sql.SQLException: Zero date value prohibited
解决方法:
数据库连接语句添加上
zeroDateTimeBehavior=CONVERT_TO_NULL
例如:
jdbc:mysql://localhost:3306/db_test?serverTimezone=UTC&zeroDateTimeBehavior=CONVERT_TO_NULL
里面还介绍了 zeroDateTimeBehavior的几种配置
exception(默认),CONVERT_TO_NULL, round
CONVERT_TO_NULL 是把 null 转成 0000-00-00 00:00:00
rand 是 把 null 转为 0001-01-01 14:00:00 (具体没有亲测 )
(72)
文章为个人原创:如需转载,请注明出处。谢谢!