我有一个SpringBoot JPA存储库,可以找到一堆"事物"在具有名为" lastModified"的字段的MongoDB实例中这是一个ISODate(),如下所示。
{ "name": "a", "lastModified", "ISODate(2018-04-19T19:10:39.356574)" }
当我使用像:
这样的存储库函数时public List<Thing> findByName(String name);
我得到了
org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.util.Date] for value 'ISODate(2018-04-18T18:38:42.635027)'; nested exception is java.lang.IllegalArgumentException
我试过了
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS")
@DateTimeFormat(pattern="yyyy-MM-dd'T'HH:mm:ss.SSSSSS")
实体我是否遗漏了有关Mongo如何进行转换的内容?我希望它将ISODate变成一个简单的字符串并将其传递给setLastModified(String name)函数,但我猜那不是这样吗?
答案 0 :(得分:1)
事实证明,这只是因为日期是作为一个“ISODate(2018-04-19T19:10:39.356574)”的字符串插入而是作为一个日期,就像ISODate(“2018-04-17T19:43: 00Z“)
一旦我找到并修复了这些数据的来源,它就开始正常工作了。