Closed zhwuyuhehe closed 9 months ago
当前使用3.5.4.1,具体如下:
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.4.1</version> <exclusions> <exclusion> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>3.0.3</version> </dependency>
使用快速测试https://github.com/baomidou/mybatis-plus/tree/master/mybatis-plus-boot-starter-test 配置了我的项目,发现获取时间戳为null。
后续访问了ChatGPT,排查到使用手动映射字段,会使timestampz数据类型正常获取。 使用@Result手动映射了timestampz类型的数据,可以正常获取数据库中的时间戳。
测试自己的获取时间戳的函数 Creating a new SqlSession Registering transaction synchronization for SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@53e82089] JDBC Connection [HikariProxyConnection@81788921 wrapping org.postgresql.jdbc.PgConnection@322b09da] will be managed by Spring ==> Preparing: SELECT * from repository ==> Parameters: <== Columns: name, isn, category, cost, price, stock, promoting, update_time <== Row: 雪碧柠檬味汽水500毫升, 6928804010220, 即饮型调味饮料, null, 3, 12, 1, 2023-12-13 01:19:08.9069+08 <== Row: 可口可乐汽水500毫升, 6928804011173, 即饮型调味饮料, null, 3, 15, 1, 2023-12-13 01:20:53.2246+08 <== Row: 芬达橙味汽水500毫升, 6954767442075, 即饮型调味饮料, null, 3, 40, 1, 2023-12-13 22:49:58.691311+08 <== Total: 3 Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@53e82089] repository(name=雪碧柠檬味汽水500毫升, isn=6928804010220, category=即饮型调味饮料, cost=0.0, price=3.0, stock=12, promoting=1.0, update_time=2023-12-12T17:19:08.906900Z) repository(name=可口可乐汽水500毫升, isn=6928804011173, category=即饮型调味饮料, cost=0.0, price=3.0, stock=15, promoting=1.0, update_time=2023-12-12T17:20:53.224600Z) repository(name=芬达橙味汽水500毫升, isn=6954767442075, category=即饮型调味饮料, cost=0.0, price=3.0, stock=40, promoting=1.0, update_time=2023-12-13T14:49:58.691311Z) Transaction synchronization deregistering SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@53e82089] Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@53e82089] ---这里可以通过测试--- 测试获取数据库 Creating a new SqlSession Registering transaction synchronization for SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3149409c] JDBC Connection [HikariProxyConnection@1175156694 wrapping org.postgresql.jdbc.PgConnection@322b09da] will be managed by Spring ==> Preparing: SELECT name,isn,category,cost,price,stock,promoting,update_time FROM repository ==> Parameters: <== Columns: name, isn, category, cost, price, stock, promoting, update_time <== Row: 雪碧柠檬味汽水500毫升, 6928804010220, 即饮型调味饮料, null, 3, 12, 1, 2023-12-13 01:19:08.9069+08 <== Row: 可口可乐汽水500毫升, 6928804011173, 即饮型调味饮料, null, 3, 15, 1, 2023-12-13 01:20:53.2246+08 <== Row: 芬达橙味汽水500毫升, 6954767442075, 即饮型调味饮料, null, 3, 40, 1, 2023-12-13 22:49:58.691311+08 <== Total: 3 Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3149409c] repository(name=雪碧柠檬味汽水500毫升, isn=6928804010220, category=即饮型调味饮料, cost=0.0, price=3.0, stock=12, promoting=1.0, update_time=null) repository(name=可口可乐汽水500毫升, isn=6928804011173, category=即饮型调味饮料, cost=0.0, price=3.0, stock=15, promoting=1.0, update_time=null) repository(name=芬达橙味汽水500毫升, isn=6954767442075, category=即饮型调味饮料, cost=0.0, price=3.0, stock=40, promoting=1.0, update_time=null) ---分割一下--- Transaction synchronization deregistering SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3149409c] Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3149409c] 2023-12-14T23:57:06.909+08:00 INFO 23464 --- [MySpring] [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2023-12-14T23:57:06.917+08:00 INFO 23464 --- [MySpring] [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
百度 mybatis Typehandler
当前使用版本(必填,否则不予处理)
当前使用3.5.4.1,具体如下:
该问题是如何引起的?(确定最新版也有问题再提!!!)
使用快速测试https://github.com/baomidou/mybatis-plus/tree/master/mybatis-plus-boot-starter-test 配置了我的项目,发现获取时间戳为null。
重现步骤(如果有就写完整)
后续访问了ChatGPT,排查到使用手动映射字段,会使timestampz数据类型正常获取。 使用@Result手动映射了timestampz类型的数据,可以正常获取数据库中的时间戳。
报错信息