我有简单的对象客户端
public class Client {
String externalCode;
String name;
String surname;
}
public class User {
String internalCode;
String name;
String surname;
}
@Mapper()
ClientMapper {
@CodeMapping
String toInternalCode(String externalCode) {
return externalCode + " internal part";
}
@Mapping(target = "internalCode", source = "externalCode", qualifiedBy = CodeMapping.class)
User toUser(Client client);
}
最有可能的是,所有方法都使用toInternalCode
,因为@codemapping
注释不是用@qualifier
(来自org.mapstruct.qualifier
)进行元注释的。
应按以下方式定义@codemapping
:
import org.mapstruct.Qualifier;
@Qualifier
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.CLASS)
public @interface CodeMapping {
}
这是我的例子。 我希望toDto方法使用toDto将Employee映射到EmployeeDto,但mapstruct会生成employeeDtoToEmployeeDto方法。我该怎么修? 谢谢
问题内容: 如果名称和名称相同,默认情况下MapStruct将映射源和目标的所有属性。尽管我们可以在@Mapping中使用ignore属性来省略任何字段映射。但这不是我想要的。我想控制映射策略。我必须指定类似 现在此映射仅用于将ID和名称从源映射到目标。除非在映射注释中指定,否则不应映射其他字段。 问题答案: 您正在寻找的是#1392中 的功能请求。有一个待定的PR,因此可以在下一版本(1.3.0
例如,我有以下接口映射器: 在代码中,您可以看到映射和一些默认方法,其中包含其他映射。如何在Mapstruct映射中使用这些方法,以便Mapstruct使用这些方法在字段中填充值?
默认情况下,MapStruct映射源和目标的所有属性,如果它们具有相同的名称。中的元素可用于省略任何字段映射。但那不是我想要的。我想控制映射策略。我想指定如下内容: 现在,这个映射仅仅意味着将id和名称从源映射到目的地。除非在mappings注释中指定,否则不应映射其他字段。
我有一个mapstruct类,具有以下函数 CustomApplication和常规应用程序都扩展了App,因此我有根据isCustom字段调用转换器的main Converter。 问题是,当我尝试构建这个时,我得到了一个模糊的映射错误,因为main Converter、ConvertNorarApplication和ConvertCustomApplication都从Application D
我看到生成的代码使用方法将转换为,但我希望使用方法。是否可以“全局”配置它?