Java 8 Date/Time (JSR-310) types mapping with Spring Data MongoDB

后端 未结 2 697
醉话见心
醉话见心 2020-12-14 22:17

I have simple document with Java 8 date/time fields

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

that I want to

2条回答
  •  不知归路
    2020-12-14 23:01

    @user882209 explained it all just perfectly.
    Since Spring Data MongoDB 1.7 the support for JSR-310 has been added.
    If application is backed by Spring Boot every version over 1.2.8 would contain it as well.
    In a Spring Boot-ed app you can just do it the following:

    @Configuration
    public class MongoDbConfig {
    
        @Autowired
        private MongoDbFactory mongoDbFactory;
    
        @Bean
        public MongoTemplate mongoTemplate() {
            MappingMongoConverter converter = new MappingMongoConverter(new DefaultDbRefResolver(mongoDbFactory),
                new MongoMappingContext());
            converter.setCustomConversions(new CustomConversions(Arrays.asList(...)));
    
        return new MongoTemplate(mongoDbFactory, converter);
        }
    }
    

    The following converters are provided by the Jsr310Converters class:
    DateToLocalDateTimeConverter - LocalDateTimeToDateConverter DateToLocalDateConverter - LocalDateToDateConverter DateToLocalTimeConverter - LocalTimeToDateConverter DateToInstantConverter - InstantToDateConverter

提交回复
热议问题