我嘗試使用Joda-Time中的org.joda.time.DateTime字段保存文檔。Spring數據MongoDB在默認情況下未啓用Joda-Time轉換器
@Document
public class JodaDoc {
@Id
private BigInteger id;
private String dateAsString;
private DateTime date;
public JodaDoc(String dateAsString, DateTime date) {
this.dateAsString = dateAsString;
this.date = date;
}
public BigInteger getId() { return id; }
public String getDateAsString() { return dateAsString; }
public DateTime getDate() { return date; }
}
使用AbstractMongoConfiguration從彈簧數據mongodb的標準應用程序配置:
@ComponentScan
@EnableMongoRepositories
public class AppConfig extends AbstractMongoConfiguration { ... }
其中顯式使用的AppConfig類(斯波克,但是在內部,使用由彈簧測試提供的機制)的試驗:
@ContextConfiguration(classes = AppConfig)
class JodaDocRepositorySpec extends Specification {
@Autowired
private JodaDocRepository jodaDocRepository
def "save document with DateTime"() {
given:
def jodaDoc = new JodaDoc(DateTime.now())
when:
def savedJodaDoc = jodaDocRepository.save(jodaDoc)
then:
savedJodaDoc.id
}
}
Spring數據中的Joda-Time轉換器當Joda-Time jar處於classp時,MongoDB(以及Spring Core本身)中的Joda-Time轉換器應該啓用default ATH。
org.springframework.core.convert.ConverterNotFoundException:
No converter found capable of converting from type org.joda.time.DateTime to type java.util.Date
我嘗試添加DefaultFormattingConversionService:不幸的是我的測試失敗
@Bean
public ConversionService conversionService() {
return new DefaultFormattingConversionService();
}
ConversionServiceFactoryBean和一些其他的事情沒有影響。我無法在StackOverflow上找到答案。
問題。爲什麼使用Spring Data MongoDB沒有看到標準的org.joda.time.DateTime -> java.util.Date
轉換器?
[提到的問題]有一個有趣的答案(http://stackoverflow.com/q/21034018/313516)。 –