gpt4 book ai didi

java - Dozer深度集合映射

转载 作者:太空宇宙 更新时间:2023-11-04 13:44:08 25 4
gpt4 key购买 nike

我在 SrcObject 中有 StateTax 和 LocalTax 的集合。这需要映射到 StateLocalTax 的集合。在 SrcObject 中,如果我有三个 SrcStateTax 和两个 SrcLocalTax,我想将它们映射到 StateLocalTax 的集合,该集合将有四个元素。该集合的三个元素将包含具有 null destLocalTaxGroup 的 stateTax 信息,而一个元素将包含具有两个 LocalTax 信息的 destLocalTaxGroup 的集合。

public class SrcObject {

private List<SrcStateTax> srcStateTaxGroup;
private List<SrcLocalTax> srcLocalTaxGroup;

//Getter setter

}

public class SrcStateTax {
private String srcStateCode;
private String srcStateTaxAmount;
……
//Getter setter
}

public class SrcLocalTax {
private String srcLocalCode;
private String srcLocalTaxAmt;
……
//Getter setter
}

目标对象是

public class DestObject {   
private List<StateLocalTax> stateLocalTaxGroup;
……..

//Getter setter

}

public class StateLocalTax {
private String destStateCode;
private String destStateTaxAmount;
…….
private List<DestLocalTax> destLocalTaxGroup;

//Getter setter
}

public class DestLocalTax {
private String destLocalCode;
private String destLocalTaxAmt;
}

推土机映射:

<mapping>
……….
<field map-id="map-StateTax">
<a>srcStateTaxGroup</a>
<b>stateLocalTaxGroup</b>
<a-hint>com.sample.source.SrcStateTax</a-hint>
<b-hint>com.sample.target.StateLocalTax</b-hint>
</field>
<field map-id="map-LocalTax">
<a>srcLocalTaxGroup</a>
<b>stateLocalTaxGroup.destLocalTaxGroup </b>
<a-hint>com.sample.source.SrcLocalTax</a-hint>
<b-hint>com.sample.target.DestLocalTax</b-hint>
</field>
</mapping>

<mapping map-id="map-StateTax">
<class-a>com.sample.source.SrcStateTax</class-a>
<class-b>com.sample.target.StateLocalTax</class-b>

<field>
<a>srcStateCode</a>
<b>destStateCode</b>
</field>
<field>
<a>srcStateTaxAmount</a>
<b>destStateTaxAmount</b>
</field>

</mapping>

<mapping map-id="map-1099RLocalTaxGroups">
<class-a>com.sample.source.SrcLocalTax</class-a>
<class-b>com.sample.target.DestLocalTax</class-b>

<field>
<a>srcLocalCode</a>
<b>destLocalCode</b>
</field>
<field>
<a>srcLocalTaxAmt</a>
<b>destLocalTaxAmt</b>
</field>
</mapping>

我正确地收到错误“在类中找不到字段 (stateLocalTaxGroup.destLocalTaxGroup) 的读取或写入方法..但不确定如何解决此用例。

最佳答案

您的第一个推土机映射具有以下内容:

<field map-id="map-LocalTax">
<a>srcLocalTaxGroup</a>
**<b>stateLocalTaxGroup.destLocalTaxGroup </b>**
<a-hint>com.sample.source.SrcLocalTax</a-hint>
<b-hint>com.sample.target.DestLocalTax</b-hint>
</field>

stateLocalTaxGroup 是一个 List 对象。您无法直接从中访问“destLocalTaxGroup”,因此出现错误:找不到字段(stateLocalTaxGroup.destLocalTaxGroup)的读取或写入方法。这表明您的列表对象中没有 getter/setter,这是正确的。

解决问题的最短方法是搬家

private List<DestLocalTax> destLocalTaxGroup;

到您的目标对象,以便两者具有相同的层次结构。

关于java - Dozer深度集合映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31034722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com