【发布时间】:2018-10-09 09:55:51
【问题描述】:
我有以下实体类
public class Company {
private Map<Locale, String> name;
/* Other fields, getters, setters */
}
还有下面的 DTO 类
public class CompanyHeader {
private String name;
/* Other fields, getters, setters */
}
所以,我的实体包含不同语言的名称,我想将它映射到给定的Locale
这是我的映射器类
@Mapper
public interface CompanyMapper {
CompanyHeader entityToHeader(Company company, Locale locale);
@Named("getByLocale")
default String getValueByLocale(Map<Locale, String> map, Locale locale) {
return map.get(locale);
}
}
现在我的问题是,我应该如何注释我的映射方法,以便它理解 company 作为我的源对象,getValueByLocale 方法作为 name 字段的映射方法,以及 locale 作为参数getValueByLocale 方法?
这是我从外部使用映射方法的方式
public Page<CompanyHeader> getCompanies(CompanyFilter companyFilter, Locale locale) {
Page<Company> companies = getCompanies(companyFilter);
Page<CompanyHeader> headers = companies.map(company -> companyMapper.entityToHeader(company, locale));
return headers;
}
【问题讨论】: