java - org.mapstruct 不适用于基类
问题描述
我有2节课。我的基类:
@Data
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class BaseRequest {
@NotNull
@JsonProperty("dateTransaction")
private String dateTransaction;
@NotNull
@JsonProperty("hourTransaction")
private String hourTransaction;
}
还有我的另一堂课。这个类扩展了 BaseRequest 类。
public class AddClass extends BaseRequest {
@Setter
@Getter
private String additionalData60;
}
当我尝试创建一个映射器将我的 AddClass 转换为 OtherClass 时:
@Component
@Mapper(componentModel = "spring", uses = {})
public interface OtherMapper{
@Mappings({
@Mapping(source = "hourTransaction", target = "timeTransaction"),
@Mapping(source = "dateTransaction", target = "dateTransaction"),
@Mapping(source = "additionalData60", target = "additionalData60"),
})
OtherClass toOtherClass(AddClass addClass);
}
当我运行我的构建时,我收到了这个错误:
错误:(22,13)java:源参数中不存在名为“dateTransaction”的属性。您指的是“空”吗?
解决方案
MapStruct 在 Lombok 上没有问题。
但是,如果您已根据Lombok 更新日志升级到 Lombok 1.18.16,那么您需要添加
lombok-mapstruct-binding
在 Gradle 中:
annotationProcessor "org.projectlombok:lombok-mapstruct-binding:0.1.0"
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.1.0</version>
</path>
推荐阅读
- c - 我的光线投射器中透视扭曲的原因是什么?
- javascript - 当我没有在行中输入 0 时,为什么它说 0 未定义?
- winapi - Windows 防火墙:寻找用户交互 API
- javascript - Javascript 新手 - 用于 VSCode 的 Live Server 未显示空白脚本的空白页面
- asp.net-core - 覆盖 .NET Core 中的控制器级别授权值
- c++ - C ++从按列拆分的文件中读取整数
- vue.js - VueJS:如何访问路由文件中的参数值
- react-native - 找不到导航对象。您的组件是否在导航器的屏幕内?抽屉导航器
- xcode - XCode 12.4:发生内部错误编辑功能可能受到限制
- python - 查找与线的点距离 - python