我正在使用对象映射器将格式为yyyy-MM-dd的日期字符串转换为com.datastax.driver.core.LocalDate,并将该数据保存到我的java spring启动项目中的Cassandra中。我在Cassandra中的列的类型是日期,我在我的java类中使用com.datastax.driver.core.LocalDate。但是在将map转换为我的java类时,它会抛出错误“com.fasterxml.jackson.databind.JsonMappingException:问题反序列化属性'employeedateofbirth'(预期类型:[simple type,class com.datastax.driver.core.LocalDate];实际类型:java.time.LocalDate
),问题:参数类型不匹配“。我没有使用java.time.LocalDate它仍然给我参数不匹配错误。
我甚至尝试使用以下代码注册模块
ObjectMapper oMapper = new ObjectMapper().registerModule(new ParameterNamesModule()).registerModule(new Jdk8Module()).registerModule(new JavaTimeModule());
oMapper.findAndRegisterModules();
我也试过像对象映射器一样的配置
oMapper.configure(MapperFeature.USE_GETTERS_AS_SETTERS, false) ;
甚至在我的属性上使用了注释:
@JsonDeserialize(using = LocalDateDeserializer.class)
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate employeedateofbirth;
但似乎没有什么对我有用。任何帮助,将不胜感激。提前致谢。
如错误消息所示,存在类型不匹配。在目标类中更改此内容:
import com.datastax.driver.core.LocalDate;
成:
import java.time.LocalDate;