@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface DummyMapper {
DummyMapper INSTANCE = Mappers.getMapper(DummyMapper.class);
DummyResponseApi modelToApi(DummyResponse DummyResponseModel);
}
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {DummyMapper.class})
class ServiceClassTest {
private DummyService service;
}
public DummyModelApi getSomething() {
DummyModel mapMe = new DummyModel();
return DummyMapper.INSTANCE.modelToApi(mapMe);
}
使用@SpringBootTest,据我所知,Spring实际上是在启动html" target="_blank">应用程序,并且应该创建映射器类,所以我不明白,为什么映射器总是空?!当我删除@SpringBootTest中的DummyMapper.class时,会出现一个错误,上面写着“Failed to load application Context”。这向我表明,映射器是被识别的。
我觉得奇怪的另一件事是,我必须在映射器中使用“unmappedtargetpolicy=reportingpolicy.ignore”,否则我会得到错误消息“unmapped properties conn't found”或其他什么,即使在两个模型中都有相同名称的属性。这在以前的项目中总是没有问题,不知道为什么MapStruct现在做的事情很奇怪。
天哪,我找到解决办法了。现在我知道为什么要在映射器中添加“@mapper(unmappedTargetPolicy=reportingpolicy.ignore)”了。
在这里找到了解决方案:https://stackoverflow.com/A/69649688/8743351
在pom.xml/gradle.build中,Lombok需要位于mapstruct之前。
我使用的是一个用MapStruct生成的映射器: 缺省组件模型是spring(在pom.xml中设置)
使用MapStruct,我创建了一个映射器,它是一个抽象类。我决定将映射器从接口转换为抽象,以便使用组件名称,该组件本身使用名为的组件。 尽管映射工作正常,但在单元测试中,它会抱怨组件找不到合格bean。 映射器类。我尝试在注释的属性中添加。但是异常移到了的下一个组件。 出现异常的测试类。正如我提到的,我尝试将添加到。我还尝试通过添加来完全模仿它。
我有一个简单的Java单模块Gradle项目,其中我使用Mapstruct进行Java映射。我的如下所示: 我的源文件夹包含以下Java源代码:
我正在尝试按如下方式对Mapstruct嵌套映射器进行单元测试: 我正在尝试测试EventMapper: 但它在以下方面不断失败: 创建名为“eventMapper”的bean时出错:bean的实例化失败;嵌套的异常是org。springframework。豆。BeanInstationException:未能实例化[com.mycompany.cna.projects.fishmarket.ba
我有麻烦映射一个嵌套dto字段正确与MapStruct。我有几个DTO: 具有相应的映射器 到目前为止,一切工作都很好,生成的代码自动连接其他需要的映射器来正确地构建DTO。例如生成的仪器映射器实现 现在,当我试图创建一个包含嵌套工具dto的映射器时遇到了麻烦。映射器应使用instrumentMapper正确创建所需的dto。DTO: 映射器: 生成的代码: 现在media mapper得到了很好
有人能帮忙填写上面的评论部分吗?或者是否有其他选项来映射这些对象? 编辑:我尝试了下面的解决方案,但是接口实现类本身发生了变化。