java - 在 MapStruct 中抛出 noSuchMethodError
问题描述
我在我的实体和我的 dto 中定义了一个布尔值和一个枚举
@Entity
public class ConfigurationItemEntity {
@Id
private String externalId;
private ConfigurationTypeEnum configurationType;
private boolean active;
public String getExternalId() {
return externalId;
}
public void setExternalId(String externalId) {
this.externalId = externalId;
}
public ConfigurationType getConfigurationType() {
return configurationType;
}
public void setConfigurationType(ConfigurationType configurationType) {
this.configurationType = configurationType;
}
public boolean isActive() {
return active;
}
public void setActive(boolean active) {
this.active = active;
}
}
public class ConfigurationItem {
private String externalId;
private ConfigurationTypeEnum configurationType;
private boolean active;
}
我想将 dto 映射到实体
@Mapper(componentModel = "spring")
public interface ConfigurationItemMapper {
ConfigurationItemEntity configItemDomainToConfigItemEntity(ConfigurationItem configurationItem);
}
但我得到这个错误
java.lang.NoSuchMethodError: com.xx.mapper.ConfigurationItemMapper.configItemDomainToConfigItemEntity(Lcom/xx/uc/health/administration/ConfigurationItem;)Lcom/xx/entities/ConfigurationItemEntity;
解决方案
根据 MapStruct 文档
MapStruct 是一个注解处理器,它插入到 Java 编译器中,可用于命令行构建(Maven、Gradle 等)以及您首选的 IDE。
它在compile
maven 生命周期阶段工作,因此请确保mvn clean compile
在使用它之前运行。您可以通过查看来验证生成的映射器target/generated-sources
(这是它们默认生成的地方)
推荐阅读
- excel-formula - sumproduct 与重复 - 只想要第一个实例
- selenium - 如何修复单击但不执行任何操作的按钮?
- regex - 正则表达式用多行替换单行
- c - C中浮点数组的内存分配
- r - 安装 rgeos Redhat
- freemarker - Freemarker 将转义的 ${expression} 分配给变量
- python - to_numeric 返回 NaN 相关
- git - 如何保持两个独立的工作目录同步——或者 git 能够识别相同的提交?
- angular - 在自定义指令中访问 ng-template 上的 let- 变量
- uwp - 无法使用 Open Sans 字体渲染特殊字符?