程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Spring Data MongoDB的Java 8日期/时间(JSR-310)类型映射大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Spring Data MongoDB的Java 8日期/时间(JSR-310)类型映射?

开发过程中遇到Spring Data MongoDB的Java 8日期/时间(JSR-310)类型映射的问题如何解决?下面主要结合日常开发的经验,给出你关于Spring Data MongoDB的Java 8日期/时间(JSR-310)类型映射的解决方法建议,希望对你解决Spring Data MongoDB的Java 8日期/时间(JSR-310)类型映射有所启发或帮助;

我不知道这是否是最好的方法,但是我向Spring Data MongoDB添加了Java 8 Date / Time(JsR-310)类型支持,1.5.0.RELEASE如下所示:

  1. 第一步。添加简单的Spring Converter小号
        public class InstantTolongConverter implements Converter<Instant, Long> {
        @OverrIDe
        public Long convert(Instant instant) {
            return instant.toEpochMilli();
        }
    }

    public class LongToInstantConverter implements Converter<Long, Instant> {
        @OverrIDe
        public Instant convert(Long sourcE) {
            return Instant.ofEpochMilli(sourcE);
        }
    }

    public class LocalDatetoStringConverter implements Converter<LocalDate, String> {
        @OverrIDe
        public String convert(LocalDate localDatE) {
            return localDate.toString();
        }
    }

    public class StringTolocalDateConverter implements Converter<String, LocalDate> {
        @OverrIDe
        public LocalDate convert(String sourcE) {
            return LocalDate.parse(sourcE);
        }
    }
@H_489_15@

  1. 第二步。注册这些自定义的Converter与S @H_315_3@mapPingMongoConverter在AbstractMongoConfiguration实现这样的:
        @Configuration
    @EnableMongoRepositorIEs(basePackages = {"my.app.repository"})
    public class MongoConfiguration extends AbstractMongoConfiguration {

        ...

        @OverrIDe
        public Customcatonversions customcatonversions() {
            return new Customcatonversions(Arrays.asList(
                    new InstantTolongConverter(), new LongToInstantConverter(),
                    new LocalDatetoStringConverter(), new StringTolocalDateConverter()));
        }
    }
@H_489_15@

现在,您文档的Instant字段将LocalDate作为字符串保留为long值和。

解决方法

我有一个带有Java 8日期/时间字段的简单文档

@Document
public class Token {
    private Instant createdAt;
    ...
}
@H_489_15@

我想继续使用Spring Data MongoDB
1.5版。但是类型字段java.time.Instant不能正确反序列化,因为@H_315_3@mappingMongoConverter缺少java.time类的转换器。

在春季4中,我发现org.springframework.format.datetiR_587_11845@e.standard.datetiR_587_11845@eConverters使用包含不同Converter的,InstantToLongConverter并将其LongToInstantConverter声明为私有静态类。

如何配置@H_315_3@mongoTemplate使用它们将Instant字段映射为long?

大佬总结

以上是大佬教程为你收集整理的Spring Data MongoDB的Java 8日期/时间(JSR-310)类型映射全部内容,希望文章能够帮你解决Spring Data MongoDB的Java 8日期/时间(JSR-310)类型映射所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。