通过SpringData将LocaTime保存到MongoDB
我尝试使用spring boot starter父级org.springframework.boot 1.2.3.RELEASE将LocalTime joda字段保存到带有SpringData的MongoDB,并获得StackOverflowerError StackOverflowerError位于方法中的BeanRapper中通过SpringData将LocaTime保存到MongoDB,mongodb,spring-data,jodatime,Mongodb,Spring Data,Jodatime,我尝试使用spring boot starter父级org.springframework.boot 1.2.3.RELEASE将LocalTime joda字段保存到带有SpringData的MongoDB,并获得StackOverflowerError StackOverflowerError位于方法中的BeanRapper中 public <S> S getProperty(PersistentProperty<?> property, Class<? ext
public <S> S getProperty(PersistentProperty<?> property, Class<? extends S> type)
将这两个转换器添加到CustomConversions中可以解决此问题
@Configuration
public class MongoConfiguration extends AbstractMongoConfiguration {
@Override
protected String getDatabaseName() {
return "databasename";
}
@Override
public Mongo mongo() throws Exception {
return new MongoClient("localhost");
}
@Override
public CustomConversions customConversions() {
List<Converter<?, ?>> converters = new ArrayList<>();
converters.add(new LocalTimeToStringConverter());
converters.add(new StringToLocalTimeConverter());
return new CustomConversions(converters);
}
}
public class LocalTimeToStringConverter implements Converter<LocalTime, String> {
@Override
public String convert(LocalTime localTime) {
return localTime.toString();
}
}
public class StringToLocalTimeConverter implements Converter<String, LocalTime> {
@Override
public LocalTime convert(String s) {
return LocalTime.parse(s);
}
}
现在所有字符串都将转换为LocalTime,我该如何处理?@user1955934如果类的字段类型为LocalTime,则字符串应仅转换为LocalTime
@Configuration
public class MongoConfiguration extends AbstractMongoConfiguration {
@Override
protected String getDatabaseName() {
return "databasename";
}
@Override
public Mongo mongo() throws Exception {
return new MongoClient("localhost");
}
@Override
public CustomConversions customConversions() {
List<Converter<?, ?>> converters = new ArrayList<>();
converters.add(new LocalTimeToStringConverter());
converters.add(new StringToLocalTimeConverter());
return new CustomConversions(converters);
}
}
public class LocalTimeToStringConverter implements Converter<LocalTime, String> {
@Override
public String convert(LocalTime localTime) {
return localTime.toString();
}
}
public class StringToLocalTimeConverter implements Converter<String, LocalTime> {
@Override
public LocalTime convert(String s) {
return LocalTime.parse(s);
}
}