大佬门, 我mongodb中一个字段是存储的字符串,对应的实体类中是存储的date,用的spring-data-mongodb,怎么将这个字段转换后映射上? 如果我不做任何处理的话,会报:Caused by: org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.util.Date] for value '2002-07-01'; 使用注解@dateTimeFormat也没用 使用转换器的话会尝试把所有string都转换成date,肯定也不行,是我使用姿势不对么? 大佬们,咋办啊
1条回答 默认 最新
- ff&yy 2020-11-04 17:25关注
你在Java代码里定义了DTO,DTO里有get和set方法,数据在从数据到进入到内存的时候会进行反序列化,反序列的时候会调用你的Set方法,此时你可以有机会把你的字符串转换成date,然后可以自定义一个get方法,返回date类型,总的思路:
1、反序列的时候set方法现将变量从字符串转换成date;
2、定义个get方法,返回date
但是这样做会让你的设计比较乱,为了彻底解决这个问题,建议你新增一个字段,用来存储date,让数据也变成date,然后项目上线后写个一个脚本把历史数据转换到新字段里。如有疑问把你的date和string字段对应的DTO截图出来,我写一个伪代码给你解决 无用评论 打赏 举报