使用jdk8和spring boot 1.5.3与jdk21和spring boot 2.7.16的存储过程的日期值返回类型的差异

问题描述 投票:0回答:1

执行存储过程的响应是返回不同的返回类型

在 jdk 8 和 spring boot 1.5.3-RELEASE 中,它的形式为 ScheduledStartDate=1704479400000

在 jdk 21 和 spring boot 2.7.16 中,它返回为 ScheduledStartDate=2024-01-06 17:00:00.0

从java执行以下过程后

Map<String, Object> result = simpleJdbcCall.execute(sqlParameter);

存储过程如下

     BEGIN
                SELECT *
                FROM WorkOrder
                WHERE (RowNo BETWEEN @PageSize * (@PageNumber - 1) + 1 AND @PageNumber * @PageSize)
                   OR (RowNo = 0 AND FromDate >= @FromDate AND FromDate < @Todate)
                ORDER BY DeliveryDate, status, WorkOrderID, FromDate

        END

我将 MS SQL 服务器驱动程序从 12.4 降级到 6.4,但此问题仍未解决 有人遇到过类似的问题或者为什么返回类型不同?

spring-boot spring-data-jpa spring-jdbc simplejdbccall
1个回答
0
投票

最终发现问题是由于jackson序列化器造成的。在应用程序属性中添加以下行对我有帮助

spring.jackson.serialization.write-dates-as-timestamps=true

© www.soinside.com 2019 - 2024. All rights reserved.