【发布时间】:2018-02-20 18:48:32
【问题描述】:
我想用 Orika 将所有人(男性和女性)映射到同一个 PersonDto。
class Name {
private String first;
private String last;
private String fullName;
// getters/setters
}
class Womens{
private List<Name> names;
// getters/setters
}
class Mens{
private List<Name> names;
// getters/setters
}
class Person {
private Mens mens;
private Womens womens;
// getters/setters
}
class PersonDto {
private List<Info> info;
// getters/setters omitted
}
class Info {
private String notes;
// getters/setters omitted
}
如果我只测试男性,可以吗?
mapperFactory.classMap(Person.class, PersonDto.class)
.field("mens.names{first}", "info[0].notes")
.field("mens.names{last}", "info[1].notes")
.field("mens.names{fullName}", "info[2].notes")
.register();
如果我只测试女性,可以吗?
mapperFactory.classMap(Person.class, PersonDto.class)
.field("womens.names{first}", "info[0].notes")
.field("womens.names{last}", "info[1].notes")
.field("womens.names{fullName}", "info[2].notes")
.register();
但是,如果我测试男性和女性,是不是 KO。信息数组没有合适的大小
mapperFactory.classMap(Person.class, PersonDto.class)
.field("mens.names{first}", "info[0].notes")
.field("mens.names{last}", "info[1].notes")
.field("mens.names{fullName}", "info[2].notes")
.field("womens.names{first}", "info[3].notes")
.field("womens.names{last}", "info[4].notes")
.field("womens.names{fullName}", "info[5].notes")
.register();
【问题讨论】: