我正在尝试使用ModelMapper映射对象树。
我创建了一个例子来说明我的问题:
代码:
@Test
public class TestCase {
ModelMapper modelMapper = new ModelMapper();
class Source {
String value1 = "1.0";
Sub sub = new Sub();
}
class Sub {
String sub1 = "2.0";
String sub2 = "3";
}
class Destination {
float numberOne;
double numberTwo;
int numberThree;
}
TestCase() {
modelMapper.addMappings(new PropertyMap<Sub, Destination>() {
@Override
protected void configure() {
map(source.sub1, destination.numberTwo);
map(source.sub2, destination.numberThree);
}
});
modelMapper.addMappings(new PropertyMap<Source, Destination>() {
@Override
protected void configure() {
map(source.value1, destination.numberOne);
// map(source.sub, destination); // this causes an exception
}
});
}
public void mapSub() { // works
Destination destination = new Destination();
modelMapper.map(new Sub(), destination);
assertEquals(destination.numberTwo, 2d);
assertEquals(destination.numberThree, 3);
}
public void mapSource() { // how to make this work?
Destination destination = new Destination();
modelMapper.map(new Source(), destination);
assertEquals(destination.numberOne, 1f);
assertEquals(destination.numberTwo, 2d);
assertEquals(destination.numberThree, 3);
}
}
我正在寻找一种配置单个ModelMapper实例的方法,以便满足以下约束:
不幸的是,行<代码>映射(source.sub,destination) 似乎没有按预期工作。
我的现实世界场景包含一个更大的对象树,具有更多的属性和类型转换。这就是我试图避免冗余映射信息的原因。
是否有可能满足约束条件?
我们正在努力通过引入新的API来支持这一点。
typeMap.include(Source::getSub, Sub.class)
这个新的API将包含在下一个版本中。坏消息是您需要这个字段的getter。
有关更多详细信息,请参阅github上的问题#354和拉取请求#358。
我正在使用下面的代码片段映射对象 它没有映射,但当我添加这个时,它工作得很好 但却无法理解它的功能<代码>导入={Instant.class,DateTimeFormatter.class}它如何帮助映射对象?
问题内容: 假设我有课: 我想将其翻译为object : 使用默认的ModelMapper设置,我可以通过以下方式实现: 但是,可能会发生该对象。在这种情况下,MyTarget还将是: 我想以这种方式指定自定义映射,(伪代码): 有人知道如何编写适当的转换器来实现这一目标吗? 问题答案: 无法直接使用ModelMapper,因为ModelMapper 方法会检查source是否为null,在这种情
我的班级等级如下: 并尝试将DTO映射到实体 地图如下: 我在详细信息字段中收到带有A或B的DTO,这是在调试器中检查的。但是模型制图者投掷 无法实例化目标组织的实例。包裹基础确保该组织。包裹Base有一个非私有的无参数构造函数。 我尝试使用显式提供程序(没有用于此映射): 我还尝试像这样实现自定义转换器(也没有执行): 模型映射器似乎没有对字段使用这个类型映射,只对hierarhy的根使用。在这
你好,我有下一个json响应: 正如你所见,我有一个资源对象,里面有许多不同的对象,但这些对象可能会根据输入的不同而有所不同。我创建了下一个pojo: 在我的输入Pojo中: 导入java。util。列表 我将资源添加为对象列表,但我可以看到它是一个对象,其中包含不同的对象。如何将这些不同的对象映射到Java中的对象?事实上,我需要计算我有多少资源,但我正在努力实现这一目标。谢谢!
问题内容: 我们有一张有很多列的大桌子。移至MySQL Cluster后,由于以下原因无法创建表: 错误1118(42000):行大小太大。不包括BLOB在内的已使用表类型的最大行大小为14000。这包括存储开销,请查阅手册。您必须将某些列更改为TEXT或BLOB 举个例子: 这是用于存储配置参数的表。我在想,我们可以将一些列合并为一个列,并将其存储为JSON对象,然后将其转换为Java对象。 例
假设我有一个Foo对象列表。Foo上有一个属性,我必须使用它从数据源中获取Bar对象。然后我必须将每个bar对象映射回我得到bar的原始Foo对象。 我的尝试如下: