public class Company {
private Map<Locale, String> name;
/* Other fields, getters, setters */
}
public class CompanyHeader {
private String name;
/* Other fields, getters, setters */
}
因此,我的实体包含不同语言的名称,我希望将它映射到给定的区域设置
这是我的映射器类
@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
方法的参数?
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;
}
您试图解决的问题似乎是@context
的好用法。
如果将映射器定义为
@Mapper
public interface CompanyMapper {
CompanyHeader entityToHeader(Company company, @Coontext Locale locale);
default String getValueByLocale(Map<Locale, String> map, @Context Locale locale) {
return map.get(locale);
}
}
通过使用@context
,您可以告诉MapStrut,该对象不应被视为映射对象,可以传递给其他对象。使用此方法,您将能够将所有map
属性映射为string
。
我在mapstruct映射器上遇到了问题。当运行mvn clean install(或mvn clean compile)时,我会得到以下错误: 问题是我不知道mapstruct从哪里获得这个“java.lang.Integer Architecture.Loads”。我不明白这个整数是从哪里来的,正如您在我的代码中看到的,没有整数。而且,到目前为止,我在使用类似的映射器时从未遇到过这个错误。 下
我希望在两个平台之间执行ECDH以导出共享密钥。我计划使用命名曲线(该曲线尚未确定)。该流看起来像这样: Alice挑了一条曲线 Alice为她的曲线生成一个随机密钥对 Alice序列化了一些关于她的曲线的数据 Alice将她的公钥和曲线数据发送给Bob Bob用Alice的数据初始化一条曲线 Bob根据Alice的数据创建密钥对 Bob执行ECDH派生共享秘密 Bob用他的公钥回应Alice A
我想用Kotlin中的Mapstruct将实体映射到带有嵌套DTO的DTO。 在Java中,这是这样的:。 应该如何使用Kotlin实现它?
关于MapStruct的问题。我有这样的情况,我从基实体扩展类,但不知道如何映射它。这是我的箱子。 BaseEntity: 基础: 没有显示错误,在映射器实现(生成的代码)中没有该ID的映射:
我正在使用MapStruct从一个JPA实体映射到一个POJO DTO,在一个带有依赖项注入的Spring应用程序中。 ...并且从不为集合中的项调用修饰方法。 有没有一种方法可以让Mapstruct在集合映射中使用decorator方法,而不是在我的decorator中手动编写集合方法(这种方法很有效,但很冗长,并且违背了Mapstruct最初的目的,即不必编写这种代码)?
问题内容: 由于重复的注释,以下代码无效: 但是,如何结合使用这两个注释? 问题答案: 至少有两个选项可以做到这一点: 以下http://www.blog.project13.pl/index.php/coding/1077/runwith-junit4-with-both-springjunit4classrunner-and-parameterized/ 您的测试需要看起来像这样: 有一个gi