class A { class ADto {
int id; -> int id;
List<B> b; List<BDto> b;
} }
class B { class BDto {
int id; -> int id;
C c; CDto c;
} }
在转换A时-
class BMap extends PropertyMap<B, BDto> {
@Override
protected void configure() {
skip(destination.getC());
}
}
实现这一目标的方法应该是什么?
在这种情况下,您可以有两种不同的选择。
第一个是使用ModelMapper实例来处理这个特殊情况,在B中添加属性映射跳过
c
-
ModelMapper mapper = new ModelMapper();
mapper.addMappings(new BMap());
另一个选项是使用转换器,因此在您的情况下,您应该使用
转换器
来转换B-
public class BToBDto implements Converter<B, BDto> {
@Override
public BDtoconvert(MappingContext<B, BDto> context) {
B b = context.getSource();
BDto bDto = context.getDestination();
//Skip C progammatically....
return bDto ;
}
}
然后在PropertyMap中使用转换器:
class BMap extends PropertyMap<B, BDto> {
@Override
protected void configure() {
using(new BToBDto()).map(source).setC(null);
//Other mappings...
}
}
问题是modelmapper将映射
当我试图使用ModelMapper将嵌套的java对象转换为嵌套的DTO时,我遇到了一个问题。在父DTO对象中,子DTO为null。以下是代码片段。 实体类: DTO的课程: 这是映射器代码: 输出: 输出用户DTO:UserDTO[名称=xyz,地址=null,产品=null] 在这里,我想将用户实体转换为UserDTO-dto。我得到了地址和产品DTO的空值。我在这里到底缺少什么?有人知道吗?
我正在尝试反序列化一个 JSON 响应,其中包含一些标准字段和一个包含子类属性的 嵌套对象,例如: 字段< code>id和< code>type是标准的,所以我有一个基类< code>Base,然后扩展一些更具体的类: 如何让杰克逊读取 对象作为进一步字段值的来源?我假设我需要创建一个自定义反序列化程序,但我不确定如何具体完成此操作。
问题内容: 我有这样的角度嵌套对象。有没有办法为嵌套属性过滤它 我只显示父元素,但想按两个元素进行过滤,例如: 问题答案: 是的,如果我正确理解您的示例,则可以。 根据集合的大小,计算迭代所用的集合可能会更好,这样过滤器就不会随着模型的更改而不断地进行操作。 http://jsfiddle.net/suCWn/ 基本上,如果我理解正确,您会执行以下操作:
这是我的DTO: 这是我的实体: 我想配置我的ModelMapper将Tag#id映射到TagVolumeDTO#idTag。这可能吗?
问题内容: 我有一个对象,它可以是任何数量的深度,并且可以具有任何现有属性。例如: 在此我想设置(或覆盖)属性,如下所示: 属性字符串可以具有任何深度,并且值可以是任何类型/事物。 如果属性键已经存在,则不需要合并对象和数组作为值。 前面的示例将产生以下对象: 如何实现这种功能? 问题答案: 此函数使用您指定的参数应添加/更新容器中的数据。请注意,您需要跟踪架构中的哪些元素是容器,哪些是值(字符串