java - 未添加目标的 mapstruct、Java 和 Spring 问题
问题描述
我确实有一个 DTO 类和一个像这样的实体类。
class ADTO {
....
....
HashSet<BDTO> b;
}
class AEntity {
.....
......
HashSet<BEntity> b;
}
class BDTO {
...
....
}
class BEntity {
.....
......
AEntity a;
}
我尝试将映射器与用途一起使用
@Mapper(componentModel = "spring", uses=BMapper.class)
interface AMapper {
ADTO toDTO(AEntity a);
AEntity fromDTO(ADTO a);
}
@Mapper(componentModel = "spring", uses=AMapper.class)
interface BMapper {
BDTO toDTO(BEntity b);
BEntity fromDTO(ADTO a, BDTO b);
}
它用于“JPA 实体”内的“一对多”关系。“DTO”用于 JSON(杰克逊解析器)。
ADTO toDTO(AEntity a);
生成器类使用 Bmapper 上述方法。
但
AEntity fromDTO(ADTO a);
没有使用Bmapper。如何强制使用Bmapper?
解决方案
尝试使用@InheritInverseConfiguration
. 它建议代码生成器也将逆映射方法的所有映射应用到带注释的方法。
@Mapper(componentModel = "spring", uses=BMapper.class)
interface AMapper {
ADTO toDTO(AEntity a);
@InheritInverseConfiguration
AEntity fromDTO(ADTO a);
}
推荐阅读
- office-js - 如何在 Excel 工作表中使用 Office-js 插入页眉和页脚
- javascript - 将分页从 Boostrap 3 转换为 4
- c# - 其他进程仍在使用此文件
- angular - 如何更改 Angular2CSV 的默认按钮
- android - 在 Android 应用程序中播放 RTSP 流,直播回来了
- django - Django admin 中的文件 URL 不正确
- django - 在 Django Rest Framework 中序列化多对多中间表
- javascript - 单击 Div 外部将其关闭。SVG 和 D3,角度
- javascript - 如何对数组的元素进行分组
- javascript - 为什么我不能从 node.js 将数据推送到 Firebase?