Skip to content

Instantly share code, notes, and snippets.

@wojda
Created October 16, 2014 22:08
Show Gist options
  • Save wojda/d42bdcfaa1c0d5b17af4 to your computer and use it in GitHub Desktop.
Save wojda/d42bdcfaa1c0d5b17af4 to your computer and use it in GitHub Desktop.
LocalDateTime java8 MongoDB converter (Spring Data Mongo)
<mongo:mongo host="${mongodb.host}" port="${mongodb.port}"/>
<mongo:db-factory id="mongoDbFactory" dbname="${mongodb.dbname}" mongo-ref="mongo"/>
<mongo:mapping-converter>
<mongo:custom-converters>
<mongo:converter>
<bean class="LocalDateTimeToStringConverter"/>
</mongo:converter>
<mongo:converter>
<bean class="StringToLocalDateTimeConverter"/>
</mongo:converter>
</mongo:custom-converters>
</mongo:mapping-converter>
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
<constructor-arg name="mongoConverter" ref="mappingConverter"/>
</bean>
<mongo:repositories base-package="org.danielwojda.mypackage"/>
import org.springframework.core.convert.converter.Converter;
import java.time.LocalDateTime;
public class LocalDateTimeToStringConverter implements Converter<LocalDateTime, String> {
@Override
public String convert(LocalDateTime localDateTime) {
return localDateTime.toString();
}
}
@Document
public class Period {
@Id
public final String id;
public final LocalDateTime startDate;
public final LocalDateTime endDate;
public Period(String id, LocalDateTime startDate, LocalDateTime endDate) {
this.id = id;
this.startDate = startDate;
this.endDate = endDate;
}
import org.springframework.core.convert.converter.Converter;
import java.time.LocalDateTime;
public class StringToLocalDateTimeConverter implements Converter<String, LocalDateTime> {
@Override
public LocalDateTime convert(String s) {
return LocalDateTime.parse(s);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment