我不知道这是否是最好的方法,但是我向Spring Data MongoDB添加了Java 8 Date /
Time(JSR-310)类型支持,
1.5.0.RELEASE如下所示:
- 第一步。添加简单的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); } }- 第二步。注册这些自定义的
Converter
与SMappingMongoConverter
在AbstractMongoConfiguration
实现这样的:
@Configuration @EnableMongoRepositories(basePackages = {"my.app.repository"}) public class MongoConfiguration extends AbstractMongoConfiguration { ... @Override public CustomConversions customConversions() { return new CustomConversions(Arrays.asList( new InstantToLongConverter(), new LongToInstantConverter(), new LocalDateToStringConverter(), new StringToLocalDateConverter())); } }现在,您文档的
Instant字段将
LocalDate作为字符串保留为long值和。



