Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用mapstruct进行映射:错误:(22,48)java:参数的类型;引述;没有名为“的属性”;引用“U型”;_Java_Spring Boot_Jackson_Mapstruct - Fatal编程技术网

使用mapstruct进行映射:错误:(22,48)java:参数的类型;引述;没有名为“的属性”;引用“U型”;

使用mapstruct进行映射:错误:(22,48)java:参数的类型;引述;没有名为“的属性”;引用“U型”;,java,spring-boot,jackson,mapstruct,Java,Spring Boot,Jackson,Mapstruct,尝试构建映射器类时出现以下错误 Error:(20,48) java: The type of parameter "quote" has no property named "quote_type". Error:(15,53) java: Unknown property "quote_type" in return type. Error:(20,48) java: Property "type" has no write accessor. 下面给出了映射器类 @Mapper(comp

尝试构建映射器类时出现以下错误

Error:(20,48) java: The type of parameter "quote" has no property named "quote_type".
Error:(15,53) java: Unknown property "quote_type" in return type.
Error:(20,48) java: Property "type" has no write accessor.
下面给出了映射器类

@Mapper(componentModel=“spring”)
公共接口SourceDestinationMapper{
@映射({
@映射(target=“quote_type”,source=“quoteFromSource.type”)
})
Quote sourceToDestination(QuoteFromSource QuoteFromSource);
@映射({
@映射(target=“type”,source=“quote.quote\u type”)
})
QuoteFromSource DestinationSource(Quote Quote);
Value sourceValueToDestinationValue(ValueFromSource ValueFromSource);
值从源值到估计值(值);
}
下面给出了源类

公共类报价{
@JsonProperty(“报价单类型”)
私有字符串类型;
@JsonProperty(“报价值”)
私人价值;
}
下面给出了目标类

公共类QuoteFromSource{
@JsonProperty(“类型”)
私有字符串类型;
@JsonProperty(“值”)
来源价值中的私人价值;
}
源类

公共类值{
@JsonProperty(“报价单id”)
私有整数id;
@JsonProperty(“引用描述”)
私有字符串引用;
}
目的地等级

公共类值fromSource{
@JsonProperty(“id”)
私有整数id;
@JsonProperty(“报价”)
私有字符串引用;
}
要反序列化的JSON示例:

{ 
    "quote_type": "auto",
    "quote_value": {
        "quote_id": 10,
        "quote_description": "This is my first quote"
    } 
}

我想你的制图器可能是反方向的

与JSON结构直接相关的类是
Quote

该错误使其看起来好像您正在尝试反序列化
QuoteFromSource

此外,您需要确保您的类具有标准/默认的getter和setter,因为默认情况下,Jackson在反序列化时会使用这些getter和setter,除非您将其配置为直接执行属性注入(非默认)

例如:

公共类报价{
私有字符串类型;
私人价值;
@JsonSetter(“报价单类型”)
公共void集合类型(字符串类型){
this.type=type;
}
@JsonGetter(“报价单类型”)
公共字符串getType(){
返回类型;
}
@JsonSetter(“报价值”)
公共无效设置值(值){
这个值=值;
}
@JsonGetter(“报价值”)
公共值getValue(){
返回值;
}
}

您还可以添加一个试图反序列化的示例Json对象吗?{“quote\u type”:“auto”,“quote\u value”:{“quote\u id”:10,“quote\u description”:“这是我的第一个quote”}我发现了问题。我使用的是JsonProperty名称,而不是实际的变量名。在使用变量名更改mapper类后,它工作了@映射({@Mapping(target=“type”,source=“quoteFromSource.type”)})QuoteDestination sourceToDestination(quoteFromSource quoteFromSource)@映射({@Mapping(target=“type”,source=“quoteDestination.type”)})