通过SpringData将LocaTime保存到MongoDB

通过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

我尝试使用spring boot starter父级org.springframework.boot 1.2.3.RELEASE将LocalTime joda字段保存到带有SpringData的MongoDB,并获得StackOverflowerError

StackOverflowerError位于方法中的BeanRapper中

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);
    }
}