使用ObjectMapper转换DTO至实体时遇UnrecognizedPropertyException的原因与解决
ObjectMapper convertValue 抛出 UnrecognizedPropertyException 的原因与解决说明
异常产生的核心原因
- 你的
StudentDTO类包含firstName字段,但要映射的目标类StudentEntity既没有定义同名的成员变量,也没有提供可匹配该字段的setter方法(比如setFirstName(String))。 - Jackson的ObjectMapper默认采用严格校验模式:当源对象中存在目标类无法识别的属性时,会直接抛出
UnrecognizedPropertyException,拒绝完成映射操作。
@JsonIgnoreProperties(ignoreUnknown = true)的作用
这个注解是Jackson框架提供的配置类注解,它的核心功能就是告诉ObjectMapper忽略目标类中不存在的未知属性。当你给StudentEntity添加这个注解后,convertValue方法在处理映射时,会自动跳过firstName这类目标类没有定义的字段,不再触发校验异常,转而正常完成其他匹配字段的转换工作。
内容的提问来源于stack exchange,提问作者Kaveen Gayanga
相关产品推荐
相关产品推荐

