我在SrcObject中有StateTax和LocalTax的集合。这需要映射到StateLocalTax的集合。在SrcObject中如果我有三个SrcStateTax和两个SrcLocalTax,我想将这些映射到StateLocalTax的集合,它将有四个元素。此集合的三个元素将包含stateTax信息和null destLocalTaxGroup,一个元素将包含具有两个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>
我正确地收到错误"No read or write method found for field (stateLocalTaxGroup.destLocalTaxGroup) in class ..
,但不确定如何解决此用例。
答案 0 :(得分:0)
您的第一个推土机映射具有以下内容:
<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对象。您无法直接访问&#34; destLocalTaxGroup&#34;从它,因此错误:找不到字段的读取或写入方法(stateLocalTaxGroup.destLocalTaxGroup)。它说你的列表对象中没有getter / setter是正确的。
解决问题的最简单方法是移动
private List<DestLocalTax> destLocalTaxGroup;
到目标对象,因此两者具有相同的层次结构。