@Test public void convertsJodaTimeTypesCorrectly() { List<Converter<?, ?>> converters = new ArrayList<Converter<?, ?>>(); converters.add(new LocalDateToDateConverter()); converters.add(new DateToLocalDateConverter()); List<Class<?>> customSimpleTypes = new ArrayList<Class<?>>(); customSimpleTypes.add(LocalDate.class); mappingContext.setCustomSimpleTypes(customSimpleTypes); converter = new MappingMongoConverter(mappingContext); converter.setConverters(converters); converter.afterPropertiesSet(); Person person = new Person(); person.birthDate = new LocalDate(); DBObject dbObject = new BasicDBObject(); converter.write(person, dbObject); assertTrue(dbObject.get("birthDate") instanceof Date); Person result = converter.read(Person.class, dbObject); assertThat(result.birthDate, is(notNullValue())); }