背景
数据库用的是PG,且created_time字段用的是带时区的timestamptz类型:
用MyabtisPlus(MP)的的代码生成,默认生成的是JDK8的LocalDateTime类型:
结果,在查询时候,无法做到实体类的类型自动转换,如果是Date类型,则是没有问题的。
注:MP版本为3.5.x,PG JDBC版本为42.3.8
解决方案1
将数据库字段类型改为timestamp类型。
因为通过分析源码,发现PG的JDBC包中只支持timestamp类型转换为LocalDateTime,而不支持timestamptz类型的转换(即便最新版42.7.5),所以才报错,见源码PgResultSet.getLocalDateTime:
如果实体类中字段类型是Date或Timestamp类型,则是兼容支持两