与标题一样,我正在尝试映射 2 个类,但其中一个类具有带有私有设置器的私有属性。
public Class A {
private String propertyA;
private String propertyB;
ClassA (){
}
public String getPropertyA() {
return propertyA;
}
public void setPropertyA(String propertyA) {
this.propertyA= propertyA;
}
public String getPropertyB() {
return propertyB;
}
public void setPropertyB(String propertyB) {
this.propertyB= propertyB;
}
}
public Class B {
private String propertyA;
private String propertyB;
ClassB (String propertyB){
propertyB = propertyB;
}
public String getPropertyA() {
return propertyA;
}
public void setPropertyA(String propertyA) {
this.propertyA= propertyA;
}
public String getPropertyB() {
return propertyB;
}
void setPropertyB(String propertyB) {
this.propertyB= propertyB;
}
}
我想将对象从 A 类映射到 B 类,反之亦然,唯一的区别是不需要在从 A 类到 B 的映射中设置 propertyB。我已经尝试使用以下配置:
<mapping>
<class-a map-null="false">classA</class-a>
<class-b>classB</class-b>
<field>
<a get-method="getPropertyA" set-method="setPropertyA">propertyA</a>
<b get-method="getPropertyA" set-method="setPropertyA">propertyA</b>
</field>
<field-exclude type="one-way">
<a get-method="getPropertyB" set-method="setPropertyB">propertyB</a>
<b get-method="getPropertyB">propertyB</b>
</field-exclude>
</mapping>
这给了我一个例外:无法写入类 classB 的属性 propertyB。这是我对私有财产的意图,但无论我做什么,例外都存在。我尝试使用 type="one-way" 添加字段映射,但这给了我同样的例外。有没有办法用推土机做到这一点?