admin管理员组

文章数量:1406042

I am using Java 21 Spring Boot 3.4.2 and SpannerTemplate. I need to convert a field OffsetDateTime to the com.google.cloud.Timestamp for the TIMESTAMP column in the database.

I tried implementing converters:

@Component
public class OffsetDateTimeWriteConverter implements Converter<OffsetDateTime, Timestamp> {
    @Override
    public Timestamp convert(OffsetDateTime source) {
        return Timestamp.parseTimestamp(source.toString());
    }
}

@Component
public class OffsetDateTimeReadConverter implements Converter<Timestamp, OffsetDateTime> {
    @Override
    public OffsetDateTime convert(Timestamp source) {
        return OffsetDateTime.parse(source.toString());
    }
}

But when I try to insert data into the database I get the following error:

"message": "Unsupported mapping for type: class java.time.OffsetDateTime",

com.google.cloud.spring.data.spanner.core.mapping.SpannerDataException: Unsupported mapping for type: class java.time.OffsetDateTime at com.google.cloud.spring.data.spanner.core.convert.ConverterAwareMappingSpannerEntityWriter.writeProperty(ConverterAwareMappingSpannerEntityWriter.java:471) ~[spring-cloud-gcp-data-spanner-6.0.1.jar:6.0.1]

How do I create/use SpannerCustomConverter for my read/write operations?

本文标签: convertersConvert OffsetDateTime to comgooglecloudTimestamp for GCP Spanner TIMESTAMPStack Overflow