当前位置: 首页 > 知识库问答 >
问题:

JAXb对象中的Dozer映射集合

孔甫
2023-03-14

我有两个数据集,让我们考虑从JAXb转换器生成的数据A和数据B。检查以下代码段,

// Data A    
public class CompanyA {
    private List<EmployeeA> empList;
}

public class EmployeeA{
    private List<AddressA> addList;
}

public class AddressA{
    private String city;
}

// Data B    
public class CompanyB {
    private List<EmployeeB> empList;
}

public class EmployeeB{
    private List<AddressB> addList;
}

public class AddressB{
    private String city;
}

这些是生成的JaxB对象,带有getter[for all] /setter[for nonCollection field](在上面的代码中没有提到)。当我尝试使用Dozer API映射时,只有父对象被映射,但在映射集合时会得到空指针异常。

尝试了以下映射方法来解决映射问题,

mapping(CompanyA.class, CompanyB.class)
                .fields(field("empList").accessible(true), field("empList").accessible(true));

但上述方法的缺陷在于,如果对象包含嵌套列表对象,那么我必须提到所有具有可访问(true)的对象

我可以尝试映射所有集合对象的任何其他方法,而不必提及映射配置中的所有映射场景。

共有1个答案

陆俊智
2023-03-14

在项目pom.xml中添加以下参数以生成所有对象(包括集合)的设置器。

<configuration>
    <arguments>
       <argument>-XtoString</argument>
       <argument>-Xsetters</argument>
       <argument>-Xsetters-mode=direct</argument>
    </arguments>
    ....
</configuration>

这将强制为JaxB中的所有对象生成setter。

 类似资料:
  • 我有两个需要映射的继承层次结构。一个层次结构是国内的,另一个是野生的。我有抽象的Domestic动物和具体的DomesticCat和DomesticDog扩展它。在第二个层次结构中,我有抽象的Wild动物和具体的WildCat和WildDog扩展它。我还有另外两个类,分别是WildAnimalFeeder具有Wild动物的成员对象和DomesticAnimalFeeder具有DomesticAni

  • 注意: 我不需要创建java对象,因为我只需要检查一些值,但我没有找到任何东西来取消将它们作为通用对象或树或任何东西。像杰克逊的 JsonNode。如果可能的话,让我知道,这样我就可以避免所有这些混乱的对象来映射一切。 现在的问题是: 我不得不解组一个简单的xml,但是结果总是空的。我已经尝试了不同的注释,但是如果它们没有失败,结果就是null。 这似乎是这个问题的相同情况,但使用相同的注释是行不

  • 我正在尝试使用dozer映射将哈希集从PO对象映射到模型对象中的列表。 这是我的源和目标类:- 注意变量定义POImpl类: NoteVariableDefinition类: 我的推土机映射配置为: 每当运行此映射时,总会出现以下错误: 在这种情况下,如何将哈希集映射到ArrayList? 我是推土机映射的新手,因此也无法定义自定义转换器。 推土机文档说明它可以将集合转换为列表 推土机自动在收集类

  • 在对这个话题进行了大量的测试和研究之后,我无法完全解决我的问题。我正在springboot应用程序中使用modelmapper进行实体/DTO映射。我正在尝试配置modelmapper,将一个集合映射到一个简单的DTO对象。我已经创建了一个自定义转换器,它正在按预期工作: 我现在的问题是将此转换器应用于所有“集合”= 如果我直接在模型映射器中添加转换器,它就是不工作。 你对此有什么提示或解决办法吗

  • 我有一个对象,我正试图映射到。现在这个有一个名为的枚举,其中包含一些值。我想使用将它们映射到中的其他枚举值。以下是我到目前为止的代码: 当我尝试编译它时,我得到了错误:

  • 我是Mapstruct的新手。我有一个Word对象,它包含一个字符串值和一组它自己,我想把它映射到WordDTO,它包含一个值和一组字符串值。我不知道怎么做。正如我在注释中所说,mapstruct不能映射两个对象是有道理的,但如果它有帮助,我将错误放在下面: 我为映射实现了这个接口: 谢谢你的帮助。